0
画像用のフレームとして使用したい画像はImageView
です。 申し訳ありませんが、それはこのようpngの画像に合わせる画像(フレーム)
を湾曲? pngをパッチ9に変換して、親と背景の両方の画像を表示するよう試みましたが、うまくいきませんでした。画像が内側に収まらない
画像用のフレームとして使用したい画像はImageView
です。 申し訳ありませんが、それはこのようpngの画像に合わせる画像(フレーム)
を湾曲? pngをパッチ9に変換して、親と背景の両方の画像を表示するよう試みましたが、うまくいきませんでした。画像が内側に収まらない
私はこれをPorterDuff
を使って行っています。湾曲した縁のある余分な画像を設計し、PorterDuff.Mode.SRC_OVER
の内側にsetImageResource
のカスタム画像ビューを適用しました。ここで
@Override
public void setImageResource(int resId) {
Bitmap rawBmp = BitmapFactory.decodeResource(getContext().getResources(), resId);
Bitmap rawMask = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.image_frame_arc_filled);
Bitmap rawBorderMask = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.image_frame_arc);
Bitmap bmp = Bitmap.createScaledBitmap(rawBmp, rawBmp.getWidth(), rawBmp.getHeight(), true);
Bitmap mask = Bitmap.createScaledBitmap(rawMask, bmp.getWidth(), bmp.getHeight(), true);
Bitmap borderMask = Bitmap.createScaledBitmap(rawBorderMask, mask.getWidth(), mask.getHeight(), true);
Bitmap bitmap = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(bmp, 0, 0, null);
Paint maskPaint = new Paint();
maskPaint.setXfermode(
new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(mask, 0, 0, maskPaint);
maskPaint = new Paint();
maskPaint.setXfermode(
new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
canvas.drawBitmap(borderMask, 0, 0, maskPaint);
this.setImageBitmap(bitmap);
}
githubの上でこのサンプルコードを試してみてください..... https://github.com/siyamed/android-shape-imageviewです –