Android 我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置一个bitmpa。自过去2天以来一直存在此问题:(
我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置位图 我的适配器类如下所示。我也在recyclerView的末尾设置了一个侦听器,以便它侦听更改Android 我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置一个bitmpa。自过去2天以来一直存在此问题:(,android,android-recyclerview,filter,crash,Android,Android Recyclerview,Filter,Crash,我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置位图 我的适配器类如下所示。我也在recyclerView的末尾设置了一个侦听器,以便它侦听更改 public class ThumbnailAdapter extends RecyclerView.Adapter<ThumbnailAdapter.ThumbnailHolder> { ArrayList<ThumbnailItem> thumbnailItemLis
public class ThumbnailAdapter extends RecyclerView.Adapter<ThumbnailAdapter.ThumbnailHolder> {
ArrayList<ThumbnailItem> thumbnailItemList = new ArrayList<>();
Context mContext;
int selectedIndex = 0;
ThumbnailsAdapterListener listener;
Bitmap originalImage;
ImageView imageView;
public static class ThumbnailHolder extends RecyclerView.ViewHolder {
ImageView thumbnail;
TextView filterName;
public ThumbnailHolder(View view) {
super(view);
thumbnail = view.findViewById(R.id.thumbnail);
filterName = view.findViewById(R.id.filter_name);
}
}
public ThumbnailAdapter(Context mContext, Bitmap originalImage, ImageView imageView, ArrayList<ThumbnailItem> thumbnailItemList, ThumbnailsAdapterListener listener) {
this.originalImage = originalImage;
this.imageView = imageView;
this.thumbnailItemList = thumbnailItemList;
this.mContext = mContext;
this.listener = listener;
}
@NonNull
@Override
public ThumbnailHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.thumbnail_list_items, parent, false);
return new ThumbnailHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ThumbnailHolder holder, int position) {
final ThumbnailItem thumbnailItem = thumbnailItemList.get(position);
holder.thumbnail.setImageBitmap(thumbnailItem.image);
holder.thumbnail.setOnClickListener(view -> {
Log.i("POSITION", String.valueOf(position));
listener.onFilterSelected(thumbnailItem.filter);
selectedIndex = position;
notifyDataSetChanged();
});
holder.filterName.setText(thumbnailItem.filterName);
if (selectedIndex == position) {
holder.filterName.setTextColor(ContextCompat.getColor(mContext, R.color.dot_blue));
} else {
holder.filterName.setTextColor(ContextCompat.getColor(mContext, R.color.grey));
}
}
@Override
public int getItemCount() {
return thumbnailItemList.size();
}
public interface ThumbnailsAdapterListener {
public void onFilterSelected(Filter filter);
}
我无法理解,每当我选择一个图像并尝试调用listener时,应用程序都会崩溃。你能发布MainActivity吗?它太长了我刚刚将一个侦听器声明为“ThumbnailAdapter.ThumbnailsAdapter listener;”我不知道如何初始化它并使用它在imageview上更改图像
@Override
public void onFilterSelected(Filter filter) {
//resetControls();
Bitmap bitmap = filter.processFilter(originalImage);
Log.i("IWASHERE", filter.getName() + "Here");
Thread thread = null;
try {
imageView.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
//finalImage = filteredImage.copy(Bitmap.Config.ARGB_8888, true);
}