当前位置: 代码迷 >> Android >> 两张bitmap图片怎么弄出重叠效果
  详细解决方案

两张bitmap图片怎么弄出重叠效果

热度:98   发布时间:2016-05-01 21:59:53.0
两张bitmap图片如何弄出重叠效果
我想用LayerDrawable实现两个圆的重叠效果,按我的想法就是先在第一层的bitmap画一个圆,然后再在第二层的bitmap画个透明的背景透明的圆。
但是按我下面的代码,在第二层画了透明的背景以后,根本就看不到第一层的圆。
下面是代码
Java code
package com.namespace;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.graphics.drawable.LayerDrawable;import android.os.Bundle;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.widget.ImageView;import android.widget.RelativeLayout;public class TryDrawActivity extends Activity{    /** Called when the activity is first created. */        private RelativeLayout layout;    private ImageView imageView_1;    private Drawable[] array;    private Bitmap bitmap1;    private Bitmap bitmap2;    private Paint paint1;    private Paint paint2;    private Canvas canvas1;    private Canvas canvas2;    private LayerDrawable la;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        layout = (RelativeLayout)findViewById(R.id.relativelayout);                imageView_1 = (ImageView)findViewById(R.id.imageView1);                paint1 = new Paint();        paint1.setColor(Color.WHITE);                bitmap1 = Bitmap.createBitmap(480, 800, Config.RGB_565);                canvas1 = new Canvas(bitmap1);        canvas1.drawCircle(240, 300, 100, paint1);                paint2 = new Paint();        paint2.setColor(Color.RED);        paint2.setAlpha(0);                bitmap2 = Bitmap.createBitmap(480, 800, Config.RGB_565);                canvas2 = new Canvas(bitmap2);        canvas2.drawRect(0, 0, bitmap2.getWidth(), bitmap2.getHeight(), paint2);        //canvas2.drawCircle(240, 300, 50, paint2);                array = new Drawable[2];                array[0] = new BitmapDrawable(bitmap1);        array[1] = new BitmapDrawable(bitmap2);                la = new LayerDrawable(array);                la.setLayerInset(0, 0, 0, 0, 0);        la.setLayerInset(1, 0, 0, 0, 0);        imageView_1.setImageDrawable(la);            }}


是我的想法不对吗?刚学Android一星期,问题太弱智请见谅……

------解决方案--------------------
Config.ARGB_8888表示32位色图,即ARGB各占8个位,同理Config.ARGB_4444表示16位色图。

  相关解决方案