setImageResource是否从正确的drawable文件夹中选择图像

时间:2013-11-13 05:18:59

标签: android imageview

我有一个像这样的简单代码:

LinearLayout mainLayout = (LinearLayout) findViewById(R.layout.main);
ImageView item = new ImageView(this);
item.setImageResource(R.drawable.logo);
mainLayout.addView(item);

ImageView中的图像看起来有点模糊。似乎从默认可绘制文件夹而不是 drawable-hdpi 中选择图像。

因为当我在 xml 中设置相同的图像时,它看起来很完美。

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logo" />

如何让setImageResource从右侧文件夹中选择图像?

谢谢

3 个答案:

答案 0 :(得分:0)

在清单中添加此代码:

 <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true" />

答案 1 :(得分:0)

我不确定但是,可能是因为您必须在图形视图中查看支持hdpi分辨率的布局,并且可能会以较低的分辨率运行您的应用程序,这可能会从{{ 1}}或其他文件夹drawable。这可能是原因。

答案 2 :(得分:0)

setImageResource只要我尝试使用SDK-17,就可以从正确的可绘制文件夹中选择图像

我只需在res / drawable,res / drawable-hdpi,res / drawable-xhdpi文件夹中分别创建三个不同的图片同名,然后运行以下部分代码:

    setContentView(R.layout.activity_imageview);
    LinearLayout mainView = (LinearLayout) findViewById(R.id.main_view);
    ImageView iv = (ImageView) findViewById(R.id.image_view);
    iv.setImageResource(R.drawable.dataark);

    ImageView iv2 = new ImageView(this);
    iv2.setImageResource(R.drawable.dataark);
    mainView.addView(iv2);

以xml(iv)添加的ImageView和以编程方式添加的ImageView(iv2)都从res / drawable-xhdpi加载图像,即三星Galaxy Note的正确文件夹。

所以很确定setImageResource从正确的可绘制文件夹中选择图像。

仅供参考,布局xml非常简单,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

</LinearLayout>