【发布时间】:2012-06-05 13:52:13
【问题描述】:
我可以将不同分辨率的图像保存在 res 文件夹的 drawable-hdpi,drawable-mdpi,drawable-ldpi 中,但不知道如何从 assets/www 文件夹中访问图像。请帮忙。
【问题讨论】:
我可以将不同分辨率的图像保存在 res 文件夹的 drawable-hdpi,drawable-mdpi,drawable-ldpi 中,但不知道如何从 assets/www 文件夹中访问图像。请帮忙。
【问题讨论】:
您需要做更多的事情来处理多分辨率。只需通过 id 获取图像,系统将根据当前分辨率自动拍照。
http://developer.android.com/guide/practices/screens_support.html#range
【讨论】:
您可以通过(无论 dpi)获取图像 id:
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 只是不同的文件夹,可根据屏幕分辨率在图像质量之间产生差异。这个想法是将相同的图像放在具有不同分辨率的不同文件夹中......
【讨论】:
您不需要 AssetManager。你可以这样做
BitmapFactory.decodeFile("file:///android_asset/www/bullet.jpg")
虽然将图像存储在资产中并不是最好的方法。您将无法利用 Android 资源管理系统。因此,除非您有令人信服的理由这样做,否则我建议您使用 res 文件夹和资源系统。
更新:说明 BitmapFactory 具有通过 decodeFile 方法解码文件的方法。这是第一点。 Android 允许您通过 file:///android_asset/{path} 路径访问资产文件夹中的文件。在您的情况下,/image/Malay/bullet.jpg 中的图像是资产文件夹,可以通过 file:///android_asset/www/bullet.jpg
【讨论】: