Android 如何使用res文件夹的可绘制hdpi、可绘制mdpi、可绘制ldpi中的图像?

Android 如何使用res文件夹的可绘制hdpi、可绘制mdpi、可绘制ldpi中的图像?,android,cordova,Android,Cordova,我能够在res文件夹的drawable hdpi、drawable mdpi、drawable ldpi中保存不同分辨率的图像,但不知道如何从assets/www文件夹访问图像。请提供帮助。您可以通过以下方式获得图像id(无论dpi如何): 因此,有了id,你可以做任何你需要的事情(使用搜索)。你还需要做任何事情来处理多分辨率。只需按id获取图像,系统将根据当前分辨率自动拍照 如果要使用路径,请尝试以下操作: private void showImage() { String uri =

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

您可以通过以下方式获得图像id(无论dpi如何):


因此,有了id,你可以做任何你需要的事情(使用搜索)。

你还需要做任何事情来处理多分辨率。只需按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

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