2017-02-23 12 views
0

ImageViewを使用して、画像をデータベースから取得してプログラムに表示します。しかし、取り出された画像を特定の高さと幅にリサイズしたい(つまり、画面全体に塗りつぶさないでください)ImageViewに入力された画像のサイズを変更します

幅は150dp、高さは230dpです。

しかし、データベースにある画像はnullである可能性があります。そのため、ImageViewの高さと幅を設定できません。そうしないと、レイアウトに空白ができます。

画像のサイズを変更するにはどうすればよいですか?あなたがピカソを使用して開いている場合、あなたは簡単にこのようなあなたのイメージのサイズを変更することができます

<ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="10dp" 
     android:layout_gravity="center" 
     android:id="@+id/Img" /> 

答えて

0

利用スケールタイプfitXY

<ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:scaleType="fitXY" 
      android:layout_gravity="center" 
      android:id="@+id/Img" /> 
0

まず、あなたのdimens.xmlファイルの値を作成します。

<dimen name="imageview_width">150dp</dimen> 
<dimen name="imageview_height">230dp</dimen> 

を次に、あなたは画像をDBから受信扱うあなたのコードで:

if(image != null){ 
    imageview.getLayoutParams().height = (int) getResources().getDimension(R.dimen.imageview_height); 
    imageview.getLayoutParams().width = (int) getResources().getDimension(R.dimen.imageview_width); 
    imageview.setimagedrawable(img); // or any way that suits you. 
    } 

あなたが翻訳することができますこの方法をdp値をピクセル値に変換し、xmlから膨らませた後にイメージビューサイズをプログラムで変更することができます。

0

あなたのニーズをよく理解していません。しかし、ビューを150x230にリサイズするには、rajahsekarの回答を使用する必要があります。しかし、ImageがDB内でnullの場合、Imaviewを使用しないようにしたい場合は、プログラムで設定することができます。

imageView.setVisibility(View.GONE) 
関連する問題