3

私のimageviewは次のように宣言されています:

<ImageView
        android:id="@+id/category_image_top"
        android:layout_width="match_parent"
        android:layout_height="170dp"
        android:maxHeight="170dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:background="@drawable/image_placeholder"
        />

これが、asynctask(onPostExecute)でcategory_image_topを設定する方法です。

imageView.setImageBitmap(image);

imageを設定すると、imageviewは突然4pxのマージンを取得します。しかし、XMLからandroid:background = "@ drawable / image_placeholder"を削除すると、すべて問題ありませんか?!

ところで:image_placeholderは、これが何か違いを生む場合、9パッチのイメージです。

なぜこれが起こるのか考えはありますか?

更新:背景を単色で配置しようとしましたが、画像を読み込んだときに余白が表示されません。また、別の9パッチ画像を配置しようとしましたが、配置すると余白が再び表示されます。だからそれは画像として背景を持つものでなければなりません

UPDATE2:多分それはこの男が指摘するようなアンドロイドのバグですか?https://stackoverflow.com/a/8340745/581531

4

3 に答える 3

1

image_placeholderには4pxの透明なマージンがあると推測できます

于 2012-07-26T09:54:56.027 に答える
1

わかった。解決策が見つかりました、おそらくそれは最も美しいものではありませんが、ねえ、それはうまくいきます!:)

私のビューでは、画像のホルダーである任意のビューを追加しました。その上にImageViewがあるので、画像が読み込まれるとプレースホルダー(ビュー)がカバーされます。これは私の見解です(または少なくとも重要な部分):

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         >

        <View 
            android:layout_width="match_parent"
            android:layout_height="210dp"
            android:background="@drawable/image_placeholder"
            />

        <ImageView
            android:id="@+id/article_image"
            android:layout_width="match_parent"
            android:layout_height="210dp"
            android:adjustViewBounds="true" 
            android:layout_gravity="center"
            android:scaleType="centerCrop"
            />
...
于 2012-07-26T20:59:48.463 に答える
0

画像ビューを含む要素に余白がある可能性がありますが、それを確認しましたか?

android:background="@drawable/image_placeholder"に変更android:src="@drawable/image_placeholder"

また、以下を追加します。android:scaleType="centerCrop"

centerCropが機能しない場合は、ここにリストされている他のものを試してください。

于 2012-07-26T09:55:23.733 に答える