ListViewがあり、各行にImageViewがあります。
これらの画像は別のスレッドでダウンロードされ、UIスレッドのImageViewに追加されます。
ダウンロードしている画像は92X136ピクセルです。BitmapFactoryを使用して、これらの画像をそれぞれ50 X100pxに縮小しています。
これらの画像を異なる画面サイズで同じサイズに見せたいのですが、密度の高い画面ではこれらの画像が小さく見え、密度の低い画面では大きく見える可能性があることを理解しています。
通常、このような画像はmdpi、hdpiなどのフォルダに配置されますが、この場合、画像は動的にダウンロードされ、プログラムでスケーリングされます。
誰かが私が何をすべきかについて正しい方向に私を向けることができますか?私はコードを必要としません..いくつかのアルゴが行う必要があります...
2 に答える
0
1つの方法は、次のようにDPでスケーリングすることです。
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics());
もう1つの方法は、imageViewの寸法をdpでハードコーディングするか、画面の指標を取得して幅/高さのパーセンテージを計算した後、プログラムで高さの幅を割り当てることです(ただし、レイアウトで固定のdpだけを使用するだけで十分だと思います) 、必要に応じて、値/寸法を使用してビューのサイズをマークできます)。そして、fitXY
またはcenterCrop
のようなscaleTypeをimageViewに割り当てて、コンテンツ領域全体を塗りつぶします。
于 2012-06-20T19:33:36.383 に答える
0
たぶん、適切な密度のためにフォルダー内のxmlでそのImageViewのサイズを定義し、fitXYのようなscalingTypeプロパティを設定しますか?
于 2012-06-20T19:25:45.733 に答える