如何使用resable-hdpi,drawable-mdpi,res文件夹的drawable-ldpi中存在的图像?

时间:2012-06-05 13:52:14

标签: android cordova

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

4 个答案:

答案 0 :(得分:1)

你需要做更多的事情来处理多分辨率。只需按照id获取图像,系统将根据当前分辨率自动拍照。

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

答案 1 :(得分:0)

您可以通过(无论dpi)获取图像ID:

R.drawable.your_image

因此,使用id,您可以完成所需的一切(使用搜索)。

答案 2 :(得分:0)

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

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);

Source

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

答案 3 :(得分:0)

您不需要AssetManager。你可以做到

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

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

更新:说明BitmapFactory有一种通过decodeFile方法解码文件的方法。这是第一点。 Android允许您通过file:/// android_asset / {path}路径访问assets文件夹中的文件。在您的情况下,/ image / Marty / bullet.jpg中的图像是可以通过file:///android_asset/www/bullet.jpg

访问资产文件夹