0

私はいくつか持っていますが、または同様の手法 ImageView'sを使用して角を丸めるのは面倒です。ImageLoader

LinearLayout画像を覆うだけの を作成できますか? (または画像を背景として設定しますか?) たとえば、レイアウトの角が丸くなっている場合、下の画像の一部を非表示にして、丸みを帯びた角の効果を作成しますか?

私はこれで遊んでみましたが(具体的には背景として画像を使用しています)、画像の角を隠すことができないようです。

4

3 に答える 3

1

まあ、FrameLayoutまたはRelativeLayoutを使用すると、次のようにイメージビューの上に2番目のレイヤーを簡単にスタックできます。

<FrameLayout
    android:layout_width="60dp"
    android:layout_width="60dp">
    <ImageView android:id="@+id/myimage"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/myrealimage" />
    <ImageView android:id="@+id/my_roundedcorner_overlay"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/myoverlaywithroundedcornersandtransparentcenter" />
</FrameLayout>

ただし、これによりオーバードローが発生し、レイアウトがより複雑になることに注意してください。

実際の画像を ImageView の背景として設定し、オーバーレイを ImageViews src として設定することもできますが、この場合はパディングを設定しないでください (ライブラリを使用して Web から画像を読み込むことも、おそらくもう機能しません)。

最もクリーンな解決策は、ImageView を拡張するカスタム ウィジェットを作成し、その onDraw メソッドをオーバーライドし、http: //www.curious-creature.org/2012/12/11/android-recipe-1- のように、ビットマップ シェーダーを使用してキャンバスにペイントすることです。 image-with-rounded-corners/ほとんど同じですが、一度実行すれば、必要なだけ再利用できます。

于 2013-05-02T20:18:27.480 に答える