0

アンドロイドの例をいくつか見てみると、いくつかの値がハードコーディングされていることがわかりました。

例:

<ImageView
    android:id="@+id/icon"
    android:layout_width="22px"
    android:layout_height="22px"
    android:layout_marginLeft="4px"
    android:layout_marginRight="10px"
    android:layout_marginTop="4px"
    android:src="@drawable/ic_launcher" >
</ImageView>

この画像ビューの値は、カスタム レイアウト用にハード コーディングされています。この種のハード コーディングを回避するにはどうすればよいですか? これは Android で正しい方法ですか?、さまざまな画面サイズのデバイスに影響はありますか?

4

4 に答える 4

2

いくつかの開発者向けドキュメントを読む必要があります:

http://developer.android.com/guide/practices/screens_support.html http://developer.android.com/guide/practices/screens_support.html#screen-independence

いいえ:

<ImageView
    android:id="@+id/icon"
    android:layout_width="22px"
    android:layout_height="22px"
    android:layout_marginLeft="4px"
    android:layout_marginRight="10px"
    android:layout_marginTop="4px"
    android:src="@drawable/ic_launcher" >
</ImageView>

上記は画面全体でうまくスケーリングされません

はい:

<ImageView
    android:id="@+id/icon"
    android:layout_width="22dip"
    android:layout_height="22dip"
    android:src="@drawable/ic_launcher" >
</ImageView>

上記は、デバイスごとに「独立して」そのピクセルをスケーリングします

また

<ImageView
    android:id="@+id/icon"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher" >
</ImageView>

上記は、画面サイズに応じて自分自身を描画します

また

<ImageView
    android:id="@+id/icon"
    android:layout_width="0dip"
    android:layout_weight="1"
    android:layout_height="22dip"
    android:src="@drawable/ic_launcher" >
</ImageView>

上記は、画面サイズと画面上の他のビューに相対的に描画されます

また

ImageView imageView = new ImageView(this);
        imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        imageView.setImageDrawable(R.drawable.background);

        layout.addView(imageView);

上記はプログラムで作成されています

于 2012-04-21T14:57:15.973 に答える
1

「px」ではなく「dp」単位を使用することをお勧めします。

DP は PX ではなく、画面サイズで調整されます。

http://developer.android.com/guide/practices/screens_support.htmlを参照してください。

于 2012-04-21T14:55:35.020 に答える
0

この画像ビューの値は、カスタム レイアウト用にハード コーディングされています。この種のハード コーディングを回避するにはどうすればよいですか?

pxまず、ハードウェア ピクセルは画面密度によってサイズが異なる場合があるため、通常は寸法として使用しないでください。dpまたは別の測定単位 (例: ) を使用しmmます。

次に、再利用する予定のディメンションがある場合、または単にそれらの値を 1 か所に集めたい場合は、ディメンション リソースを使用します。レイアウトには、これらのリソースへの参照が含まれます (例: android:layout_marginTop="@dimen/something")。

于 2012-04-21T14:56:41.373 に答える
0

値は「dp」または「dpi」である必要があり、それに応じて調整される別のAndroidデバイスです。

これはあなたを助けるでしょう: http://developer.android.com/guide/practices/screens_support.html

于 2012-04-21T14:56:55.640 に答える