java - 我正在尝试从 Drawable 加载图像,但它没有在 imageview 中显示任何图像
问题描述
我在 Drawable 中有 700 张图像,我有一个图像名称列表,我需要将其加载到 imageview 程序中图像是 webp 格式,并且 在回收站视图中
小于 100kb的图像是错误的
Java 代码
Drawable drawable = mContext.getResources().getDrawable(mContext.getResources().getIdentifier(mData.get(position).getImage(), "drawable", mContext.getPackageName()));
holder.image.setImageDrawable(drawable);
布局
<ImageView
android:id="@+id/fish_image"
android:layout_width="match_parent"
android:scaleType="fitXY"
android:minWidth="100dp"
android:minHeight="100dp"
android:background="#ffffff"
android:layout_height="wrap_content"
/>
我在 Drawable 中有 700 张图像,我有一个图像名称列表,我需要以编程方式将其加载到图像视图中是否有其他解决方案
更新它工作
我将图像移动到资产文件夹并从那里加载它
try {
// get input stream
InputStream ims = mContext.getAssets().open(mData.get(position).getImagename()+".webp");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
holder.image.setImageDrawable(d);
ims .close();
}
catch(IOException ex)
{
Log.e("image_io",ex.getMessage()+"");
// return;
}
解决方案
您应该使用可绘制对象的名称作为字符串,而不是getImageuri()
:
Drawable drawable = mContext.getResources().getDrawable(mContext.getResources().getIdentifier("drawable_name", "drawable", mContext.getPackageName()));
推荐阅读
- python - 如何使用 FindReplace 通过 Google API V4 Python 指定工作表名称
- python - Pytesseract - 糟糕的结果
- javascript - 缩小网页
- stm32f4 - STM32 使用 openocd 读取保护级别 2
- python - Python-如何将df中的函数传递给.csv
- android - 以 root 身份管理 Android 打盹模式
- eslint - 如何让 VS 代码识别 repo 自己的 linting 设置
- cypress - 如何在 Raspberry Pi 的浏览器上运行 Cypress
- python - 检查一层的哪个多边形包含另一层的多边形
- docker - 如何在兄弟(DooD)docker容器之间共享目录?