0

Java でプログラムによって ImageView の高さを設定しようとしましたが、起動すると消えてしまいます。

コードは次のようになります

ImageView img = (ImageView)findViewById(R.id.image);
img.setImageResource(picture[i];
DisplayMetrics dm = new DisplayMetrics();
int width = dm.widhtPixels;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, width/3);
img.setLayoutParams(layoutParams);

ListView を作成するために、画像と別のテキスト (コードには記載されていません) が CustomAdapter に与えられることを追加する必要があるかもしれません。

ご協力ありがとうございました :-)

4

2 に答える 2

2

私はあなたのコードをテストしました。問題は、幅パラメーターと、それをどのように達成したかです。パラメータを設定するコードは、リテラル値を渡すと機能します

もしあなたがこれを試したら (私はこれがあなたが望むものではないことを知っています、我慢してください)

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(150, 50);
img.setLayoutParams(layoutParams);

それが機能することがわかります (少なくとも DP にスケーリングせずに、このようなリテラルを使用しないでください) が、幅から動的に実行したいので、これはあなたが望むものではありません。

onCreate() で幅と高さを取得するという問題があるようです。この質問と対応する回答 How to get the width and height of an Image View in android? を参照してください。

うまくいけば、これで検索が絞り込まれます。

于 2013-08-30T14:20:06.750 に答える
0

何を達成しようとしていますか、画像は常に画面幅の 1/3 ですか?

もしそうなら、レイアウトでレイアウトの重みを使用して、これを非常に簡単に行うことができます。親で weightSum=3 を設定し、画像ビューで layout_weight=1 を使用します。

于 2013-08-30T14:02:39.743 に答える