1

次のような簡単なコードがあります。

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

ImageView の画像が少しぼやけて見えます。drawable-hdpiではなく、デフォルトの drawable フォルダーから画像を選択しているようです。

xmlに同じ画像を設定すると、完璧に見えるからです。

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

setImageResource に正しいフォルダから画像を選択させる方法は?

ありがとうございました

4

3 に答える 3

0

setImageResourceSDK-17で試した限り、正しいドローアブルフォルダーから画像を選択します。

res/drawable、res/drawable-hdpi、res/drawable-xhdpi フォルダーにそれぞれ同じ名前の 3 つの異なる画像を作成し、次のコードを実行します。

    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、つまり Samsung Galaxy Note の正しいフォルダからイメージをロードします。

そのため、setImageResourceDOES が正しいドローアブル フォルダーから画像を選択することは間違いありません。

参考までに、レイアウト 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>
于 2013-11-13T05:36:56.113 に答える
0

次のコードをマニフェストに追加します。

 <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true" />
于 2013-11-13T05:24:18.447 に答える
0

よくわかりませんが、hdpiグラフィカル ビューで解像度をサポートしているレイアウトを表示している必要があり、プログラムでアプリケーションを低解像度で実行している可能性がありdrawableますdrawable-hdpi。それが理由かもしれません。

于 2013-11-13T05:33:24.953 に答える