web-dev-qa-db-ja.com

ビットマップのサイズに関係なく、ImageViewを固定サイズにする方法

そのため、Webサービスから画像を読み込んでいますが、画像のサイズが他の画像よりも小さい場合や大きい場合があり、AndroidのListViewに配置すると視覚化が馬鹿げて見えます。 ImageViewのサイズを修正して、事前に設定した量よりも大きい場合にのみ画像の一部が表示されるようにします。私は、setMaxWidth/setMaxHeightを設定し、スケールタイプをcenterCropに設定し、ClipableDrawableを使用してBitmapDrawableをラップし、Drawable.setBounds()を使用して設定することについて考えることができるすべてを試しました。 XMLで設定してプログラムで設定しようとしましたが、どちらも機能しませんでした。最大幅/高さの設定が何もしなかったことに非常に驚いた。以下は、レイアウトファイルでImageView定義を使用しているXMLです。

    <ImageView Android:id="@+id/recipeImage"
           Android:maxHeight="64px"
           Android:maxWidth="64px"
           Android:scaleType="centerCrop"
           Android:layout_width="wrap_content"
           Android:layout_height="fill_parent"
           Android:layout_alignParentTop="true"
           Android:layout_alignParentBottom="true"
           Android:layout_marginRight="6dip"/>

しかし、何も機能していません。

36
chubbsondubs

maxHeight属性とmaxWidth属性を削除し、layout_widthlayout_heightに適切に単位を入力するだけです。ただし、pxユニットは使用しないでください。デバイスに依存しないため、代わりにdpを使用してください。

46
mreichelt

これにより、画像のサイズに関係なく、指定した高さと幅に画像が収まります。

<ImageView
        Android:id="@+id/image5"
        Android:layout_width="300dp"
        Android:layout_height="200dp"
        Android:src="@drawable/image_1"
        Android:scaleType="fitXY"/>
2
Krishh
Get ImageVIews as facebook posts.    
Glide.with(context).load(link)
                    .placeholder(R.drawable.aboutlogo)
                    .fitCenter()
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .into(imageView);`

        <ImageView
                    Android:id="@+id/img1"
                    Android:src="@drawable/ic_menu_camera"
                    Android:adjustViewBounds="true"
                    Android:layout_width="match_parent"
                    Android:layout_height="wrap_content"
                    Android:scaleType="center"/>
0
Vikash Sharma