首页 > 解决方案 > 我正在尝试从 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;
        }

标签: javaandroidandroid-imageviewandroid-drawablewebp

解决方案


您应该使用可绘制对象的名称作为字符串,而不是getImageuri()

Drawable drawable = mContext.getResources().getDrawable(mContext.getResources().getIdentifier("drawable_name", "drawable", mContext.getPackageName()));

推荐阅读