1

角の丸い画像を持つ LinearLayout の背景を作成しようとしています。私はそれを行う方法の多くの例を見てきましたが、私が望むものではありません。ほとんどの場合、パディングを使用して作成する人を見てきましたが、これを行うと一種の境界線が描画され、境界線は必要なく、角が丸いだけです

    <?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
    <shape>
            <corners android:topLeftRadius="20dp" android:topRightRadius="20dp"/>
    </shape> 
    </item>
     <item >
        <bitmap android:src="@drawable/header"/>
    </item>
</layer-list>
4

6 に答える 6

3

角を丸くしたRomain Guyのイメージ

Canvas.drawRoundRect() を使用して角丸長方形を描画するカスタム Drawable を使用します。秘訣は、BitmapShader で Paint を使用して、単純な色ではなくテクスチャで角丸四角形を塗りつぶすことです。

http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/

サンプルはhttps://docs.google.com/file/d/0B3dxhm5xm1sia2NfM3VKTXNjUnc/edit?pli=1からダウンロードできます。

ここに別のリンクがあります

角の丸い ImageView を作成するには?

別のリンク

http://ruibm.com/?p=184

public class ImageHelper {
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
        .getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);

final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = pixels;

paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);

return output;
} 
}
于 2013-05-22T15:09:29.440 に答える
1

Android Support Library v4 からRoundedBitmapDrawableを使用できます。必要なのは、インスタンスを作成して角の半径を設定することだけです:

RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap);
final float roundPx = (float) bitmap.getWidth() * 0.06f;
roundedBitmapDrawable.setCornerRadius(roundPx);
于 2015-11-13T17:10:55.080 に答える
0

このブログの例を使用しましたが、これが役に立ちました。これがあなたに役立つことを願っています

http://manishkpr.webheavens.com/android-rounded-corner-image-bitmap-example/

于 2013-05-22T14:55:03.767 に答える
0

私は同じ問題を抱えていて、Photoshop で角の丸い画像を作成しただけです。これは、コードやドローアブルに関する回答ではありません。

ライブラリ 'com.makeramen:roundedimageview:2.3.0' を使用した上記の提案は、実際には相対レイアウトの背景を角の丸い画像に設定したかったため、うまくいきませんでした。

cardview を使用しても、相対レイアウトの最初のビューとして画像を使用しても、角の丸みを操作しても機能しませんでした。

Photoshop で角を丸くするとうまくいきました。

于 2020-07-09T01:10:48.807 に答える