如何使用 RES 文件夹的可绘制 HDPI、可绘制 MDPI、可绘制 LDPI 中存在的图像



我能够将不同分辨率的图像保存在res文件夹的drawable-hdpi,drawable-mdpi,drawable-ldpi中,但不知道如何从assets/www文件夹访问图像。请帮忙。

您需要做更多的事情来处理多分辨率.只需通过ID获取图像,系统将根据当前分辨率自动进行PIC处理。

http://developer.android.com/guide/practices/screens_support.html#range

你可以通过以下方式获取图像 ID(无论 dpi 如何):

R.drawable.your_image

因此,使用id,您可以执行所需的所有操作(使用搜索)。

如果要

使用该路径,请尝试以下操作:

private void showImage() {
    String uri = "drawable/icon";
    // int imageResource = R.drawable.icon;
    int imageResource = getResources().getIdentifier(uri, null, getPackageName());
    ImageView imageView = (ImageView) findViewById(R.id.myImageView);
    Drawable image = getResources().getDrawable(imageResource);
    imageView.setImageDrawable(image);
}

但建议使用R引用:

int imageResource = R.drawable.icon; 
Drawable image = getResources().getDrawable(imageResource);

drawable-hdpi drawable-mdpi,drawable-ldpi只是不同的文件夹,根据屏幕分辨率来区分图像质量。这个想法是将相同的图像放在具有不同分辨率的不同文件夹中......

您不需要资源管理器。你可以做

BitmapFactory.decodeFile("file:///android_asset/www/bullet.jpg")

尽管将图像存储在资产中并不是最好的方法。您将无法利用 Android 资源管理系统。因此,除非您有令人信服的理由这样做,否则我建议您考虑使用 res 文件夹和资源系统。

更新:说明 位图工厂有一个通过解码文件方法解码文件的方法。这是第一点。Android 允许您通过 file:///android_asset/{path} 路径访问资产文件夹中的文件。在您的情况下,/image/Malay/bullet.jpg 处的图像是可以通过以下file:///android_asset/www/bullet.jpg访问的资产文件夹

最新更新