Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Copyright (C) 2014 Lucas Rocha
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.support.v7.widget.RecyclerView;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.nostra13.universalimageloader.core.DisplayImageOptions;
- import com.nostra13.universalimageloader.core.ImageLoader;
- import com.nostra13.universalimageloader.core.assist.ImageScaleType;
- import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
- import org.lucasr.twowayview.TwoWayLayoutManager;
- import org.lucasr.twowayview.widget.StaggeredGridLayoutManager;
- import org.lucasr.twowayview.widget.TwoWayView;
- import java.util.Arrays;
- import java.util.List;
- import de.lindenvalley.inspirations.R;
- import de.lindenvalley.inspirations.model.Data;
- public class LayoutAdapter extends RecyclerView.Adapter<LayoutAdapter.SimpleViewHolder> {
- private final Context mContext;
- private final TwoWayView mRecyclerView;
- private final List<String> mItems;
- private DisplayImageOptions options;
- private final boolean isVertical;
- public static class SimpleViewHolder extends RecyclerView.ViewHolder {
- // each data item is just a string in this case
- public TextView mTextView;
- public ImageView mImageView;
- public SimpleViewHolder(View v) {
- super(v);
- mTextView = (TextView) v.findViewById(R.id.text);
- mImageView = (ImageView) v.findViewById(R.id.image);
- }
- }
- public LayoutAdapter(Context context, TwoWayView recyclerView) {
- mContext = context;
- mItems = Arrays.asList(Data.URLS);
- mRecyclerView = recyclerView;
- options = new DisplayImageOptions.Builder()
- .showImageOnLoading(R.color.silver)
- // .showImageForEmptyUri(R.drawable.ic_empty)
- // .showImageOnFail(R.drawable.ic_error)
- .cacheInMemory(true)
- .cacheOnDisk(true)
- .considerExifParams(true)
- .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
- // .displayer(new FadeInBitmapDisplayer(250))
- .bitmapConfig(Bitmap.Config.RGB_565)
- .build();
- isVertical = (mRecyclerView.getOrientation() == TwoWayLayoutManager.Orientation.VERTICAL);
- }
- public void addItem(int position, String s) {
- mItems.add(position, s);
- notifyItemInserted(position);
- }
- public void removeItem(int position) {
- mItems.remove(position);
- notifyItemRemoved(position);
- }
- @Override
- public SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- final View view = LayoutInflater.from(mContext).inflate(R.layout.adapter_item, parent, false);
- return new SimpleViewHolder(view);
- }
- @Override
- public void onBindViewHolder(SimpleViewHolder holder, int position) {
- holder.mTextView.setText(String.valueOf(position));
- final View itemView = holder.itemView;
- final String imagePath = mItems.get(position);
- ImageLoader.getInstance().displayImage(imagePath, holder.mImageView, options, new SimpleImageLoadingListener() {
- @Override
- public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
- super.onLoadingComplete(imageUri, view, loadedImage);
- Log.i("UIL", "onLoadingComplete view.getWidth() = " + view.getWidth() + " view.getHeight() = " + view.getHeight());
- Log.i("UIL", "onLoadingComplete w = " + loadedImage.getWidth() + " h = " + loadedImage.getHeight());
- final StaggeredGridLayoutManager.LayoutParams lp =
- (StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams();
- if (loadedImage.getWidth() > loadedImage.getHeight())
- lp.span = 2;
- else
- lp.span = 1;
- lp.height = loadedImage.getHeight();
- itemView.setLayoutParams(lp);
- }
- });
- }
- @Override
- public int getItemCount() {
- return mItems.size();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement