3

对于我的应用程序,我需要具有 2 或 3 种不同尺寸的相同图像

或者我想知道是否可以从另一个可绘制文件夹中获取可绘制对象(即:可以使用具有不同分辨率的相同图像)

否则,我应该在每个可绘制文件夹(mdpi、hdpi、xhdpi)中多次复制相同的图像

例如:我在 hdpi 文件夹中有可绘制的 ima,我需要在 mdpi 和 xhdpi 文件夹中提供的越来越小的相同图像 => 我怎样才能得到它们,或者我必须在 hdpi 文件夹中复制我需要的图像?

对不起我的英语不好

谢谢你帮助我

4

3 回答 3

0

我不确定我是否完全理解你,但就我而言,你应该逻辑地组织你的可绘制对象并将它们放到资产文件夹而不是资源中。然后,您可以根据需要使用它们。

另外我认为没有办法从另一个屏幕访问资源。

希望我理解你的帖子是正确的。

EDIT
API Level 15 引入了Resources.getDrawableForDensity()方法。据我了解,没有办法在旧版本上启动它。

于 2012-12-13T14:06:31.347 回答
0

名为mdpi, hdpi, xhdpi随机设备的文件夹,我的意思是有随机屏幕的设备。从屏幕上考虑有 4 种类型的 android 设备。small, normal, large, extralarge,这就是为什么有这些文件夹,为什么你不想改变你的图片名称?如果它没有帮助你能解释你的问题更容易识别吗?我不确定我是否正常回答问题:)

问候海克·纳哈佩蒂安

于 2012-12-13T13:43:44.433 回答
0

以编程方式尝试这样..

InputStream is=this.getResources().getAssets().open("drawable.png");

is=this.getResources().openRawResource(R.raw.myDrawable); 

或者

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

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只是不同的文件夹,根据屏幕分辨率在图像质量之间产生差异。这个想法是将相同的图像放在具有不同分辨率的不同文件夹中......

于 2012-12-13T13:56:53.127 回答