我有一个像这样的简单代码:
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从右侧文件夹中选择图像?
谢谢
答案 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>