如何制作气球状的 ImageView?
How do I make a balloon shaped ImageView?
我试图制作一个 ImageView,它遵循另一个 ImageView 源的形状,甚至是它自己的背景。我想要这样的东西:
But I'm getting this:
When I try this:
<ImageView
android:id="@+id/mimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="80dp"
android:src="@drawable/ic_chat_conteudo_balao"
android:background="@mipmap/pomba"
android:maxWidth="80dp"/>
Or this:
When I try this:
<ImageView
android:id="@+id/mimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="80dp"
android:src="@mipmap/pomba"
android:background="@drawable/ic_chat_conteudo_balao"
android:maxWidth="80dp"/>
我也试过按照 this 的回答,但这不是我想要的:
好吧,我不知道该怎么办了。有没有办法将一个位图按照其形状放入另一个位图中?
这是我正在处理的图像
我认为这不是重复的,因为我正在使用 9-patch,它与 karaokyo 所说的有点不同。
我想如果你使用 9-patch 面膜会有点不同。
ImageView imageView = (ImageView) findViewById(R.id.mimage);
NinePatchDrawable mask = (NinePatchDrawable) getResources().getDrawable(R.drawable.balloon);
Bitmap original = BitmapFactory.decodeResource(getResources(), R.drawable.pomba);
Bitmap result = Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
canvas.drawBitmap(original, 0, 0, null);
mask.getPaint().setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mask.setBounds(new Rect(0, 0, original.getWidth(), original.getHeight()));
mask.draw(canvas);
imageView.setImageBitmap(result);
我试图制作一个 ImageView,它遵循另一个 ImageView 源的形状,甚至是它自己的背景。我想要这样的东西:
But I'm getting this:
When I try this:
<ImageView android:id="@+id/mimage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxHeight="80dp" android:src="@drawable/ic_chat_conteudo_balao" android:background="@mipmap/pomba" android:maxWidth="80dp"/>
Or this:
When I try this:
<ImageView android:id="@+id/mimage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxHeight="80dp" android:src="@mipmap/pomba" android:background="@drawable/ic_chat_conteudo_balao" android:maxWidth="80dp"/>
我也试过按照 this 的回答,但这不是我想要的:
好吧,我不知道该怎么办了。有没有办法将一个位图按照其形状放入另一个位图中?
这是我正在处理的图像
我认为这不是重复的,因为我正在使用 9-patch,它与 karaokyo 所说的有点不同。
我想如果你使用 9-patch 面膜会有点不同。
ImageView imageView = (ImageView) findViewById(R.id.mimage);
NinePatchDrawable mask = (NinePatchDrawable) getResources().getDrawable(R.drawable.balloon);
Bitmap original = BitmapFactory.decodeResource(getResources(), R.drawable.pomba);
Bitmap result = Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
canvas.drawBitmap(original, 0, 0, null);
mask.getPaint().setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mask.setBounds(new Rect(0, 0, original.getWidth(), original.getHeight()));
mask.draw(canvas);
imageView.setImageBitmap(result);