Zan*_*hna 5 android bitmap ondraw android-canvas android-view
在我的Android应用程序中,我想绘制两个图像 - img1和img2.首先,我将绘制img2 Canvas.之后,我将绘制Canvas与img2重叠的img1 .Img1包含透明部分.问题是,img1的透明部分以黑色显示,但我希望通过img1的透明部分可以看到img2.我无法做到这一点.请帮我解决这个问题.谢谢.
码:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap b = BitmapFactory.decodeResource(getResources(),
R.drawable.white_bg); //img2
canvas.drawBitmap(b, 0, 0, null);
canvas.save();
canvas.drawBitmap(realImage, 0, 0, null); //img1
}
Run Code Online (Sandbox Code Playgroud)
对代码进行一些修改后,我得到了输出。这是我使用的代码。
public class FrameView extends View{
Bitmap bitmap = null;
public FrameView(Context context) {
super(context);
this.context = context;
}
public FrameView(Context context, AttributeSet attrs) {
super(context, attrs);
bitmap = Bitmap.createBitmap(this.screenWidth, this.screenHeight,
Bitmap.Config.ARGB_8888);
}
public FrameView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context = context;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (isTouchGestures) {
invalidate();
mImgDrawables.get(0).draw(canvas);
canvas.drawBitmap(bitmap, 0, 0, null);
}
}
//this function is invoked from my activity which is using this view
public void setFrame(int frame) {
bitmap = BitmapFactory.decodeStream(getResources().openRawResource(
frame));
bitmap = Bitmap.createScaledBitmap(bitmap, this.screenWidth,
this.screenHeight, true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7312 次 |
| 最近记录: |