我有一个回收视图,我将在其中显示9幅图像。所有这些图像都在服务器上。我正在使用Glide下载适配器的onBindViewHolder中的图像。问题是,如果互联网速度慢,Glide将需要时间下载图像并显示。在下载图片之前,我的Recyclerview是空的,没有显示任何内容。我想显示一个进度条,直到所有的图片都被下载。下载所有图像后,将隐藏进度栏,并显示所有9个图像。
这是我的适配器:
public class PuzzleGridAdapter extends RecyclerView.Adapter<PuzzleGridAdapter.MyViewHolder> implements ItemTouchHelperAdapter {
List<String> itemList;
LayoutInflater inflater;
Context context;
private final OnStartDragListener mDragStartListener;
public PuzzleGridAdapter(Context context, OnStartDragListener dragStartListener) {
this.context = context;
mDragStartListener = dragStartListener;
inflater = LayoutInflater.from(context);
itemList = new ArrayList<>();
}
public void getItemList(List<String> nameList) {
int currentSize = itemList.size();
itemList.clear();
itemList.addAll(nameList);
notifyItemRangeRemoved(0, currentSize);
notifyItemRangeInserted(0, nameList.size());
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.custom_puzzle_row, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
Log.e("PuzzleGridAdapter", itemList.get(position));
// holder.textView.setTag(itemList.get(position));
// new DownloadTask().execute(holder.textView);
Glide.with(context).load(itemList.get(position)).asBitmap().override(200,200).listener(new RequestListener<String, Bitmap>() {
@Override
public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) {
Log.e("PuzzleGridAdapter", e.getMessage());
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) {
Log.e("PuzzleGridAdapter", "ready");
return false;
}
}).diskCacheStrategy(DiskCacheStrategy.RESULT).into(holder.textView);
//holder.textView.setImageResource(itemList.get(position));
// Start a drag whenever the handle view it touched
holder.cardView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
mDragStartListener.onStartDrag(holder);
}
return false;
}
});
}
@Override
public int getItemCount() {
Log.e("PuzzleGridAdapter", itemList.size() + "");
return itemList.size();
}
public List<String> getUpdateList() {
return itemList;
}
@Override
public boolean onItemMove(int fromPosition, int toPosition) {
String item = itemList.remove(fromPosition);
itemList.add(toPosition, item);
notifyItemMoved(fromPosition, toPosition);
return true;
}
@Override
public void onItemDismiss(int position) {
itemList.remove(position);
notifyItemRemoved(position);
}
public class MyViewHolder extends RecyclerView.ViewHolder implements ItemTouchHelperViewHolder {
CardView cardView;
ImageView textView;
public MyViewHolder(View itemView) {
super(itemView);
cardView = (CardView) itemView.findViewById(R.id.gameCard);
textView = (ImageView) itemView.findViewById(R.id.kolamImage);
}
@Override
public void onItemSelected() {
itemView.setBackgroundColor(Color.LTGRAY);
}
@Override
public void onItemClear() {
itemView.setBackgroundColor(Color.WHITE);
}
}
}
在下载所有内容之前,如何显示Progressbar
?
从示例https://stackoverflow.com/questions/aa获得帮助,并将这样的代码添加到广告:
Glide.with(this)
.load("https://www.wonderplugin.com/wp-content/plugins/wonderplugin-lightbox/images/demo-image0.jpg")
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
})
.into(imageView);
在回收器视图项目的Imageview上添加进度条。
问题内容: 如何显示指定目录中的图像?就像我要显示目录中的所有png图像一样,我的目录是media / images / iconized。 我试图环顾四周,但似乎它们都不符合我的实际需求。 但是,这是我的尝试。 希望这里有人可以帮忙。我对任何想法,建议和建议持开放态度,谢谢。 问题答案: 您也可以使用以下方法:
问题内容: 我想使用Java读取文件夹中的所有图像。 什么时候: 我按下Java应用程序中的按钮, 它应该: 在弹出窗口中询问目录的路径, 然后 从该目录加载所有图像, 然后 显示其名称,尺寸类型和尺寸。 如何进行? 我有用于读取图像以及文件夹中所有图像的代码,但是我上面所说的事情如何完成? 欢迎任何建议或帮助!请提供参考链接! 问题答案: 未经测试,因为未在装有JDK的计算机上进行测试,所以请耐
我正在创建一个图像库,在单击时显示图像的模式和一些附加信息。数据是从嵌入的json字符串中提取的。该模式在一个大框架中显示正确的图像,但也显示下面的其他图像。如何防止显示其他图像? 非常感谢! 这是JSON: 这是HTML: 这将JSON放在div中: 这就是模态: var modal=文档。getElementById('myModal');
它将我带到图库以选择图像,但未显示在应用程序中,当单击上传按钮时,它只是一个空白图像视图 < li >我的Java代码 < li>XML代码 运行时显示此错误 java.lang.IllegalArgumentException:uri不能为空 以下两处给出错误的行显示了uri错误
问题内容: 这是我的代码。它不会在框架中显示图像,而是显示一些文本。有人可以建议我,我应该对代码进行哪些更改,以便可以在框架中显示图像? 问题答案: 请注意,我不会以这种方式设计代码,但是我希望使它尽可能接近原始代码,同时使其能够在基于Windows的框中显示图像列表。 列表显示
问题内容: 如何处理HTML页面中的TIFF文件? 我想在HTML页面中显示TIFF文件。 我尝试使用嵌入式标签,对象ID,IMG等。但是我无法在HTML页面中显示图像(TIFF)。 我在项目中没有使用Java,.NET或其他任何东西。我仅使用HTML。 更新:Safari支持TIFF图像加载。如何在其他浏览器(IE,Mozilla,Firefox等)中加载TIFF图像? 我无法安装第三方插件或控