点击打开链接
要实现两张图片叠加效果 通过查找资料 发现可以用setLayerInset() 实现
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Matrix;
- import android.graphics.Paint;
- import android.graphics.drawable.BitmapDrawable;
- import android.graphics.drawable.Drawable;
- import android.graphics.drawable.LayerDrawable;
- import android.os.Bundle;
- import android.view.ViewGroup.MarginLayoutParams;
- import android.widget.ImageView;
- import android.widget.ImageView.ScaleType;
- import android.widget.LinearLayout;
- import android.widget.LinearLayout.LayoutParams;
- public class testDemo extends Activity {
- private LinearLayout lay;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- lay = (LinearLayout) findViewById(R.id.linearLayout1);
- firstLay();
- }
- private void firstLay() {
- Bitmap mbitmap_c = BitmapFactory.decodeResource(getResources(),
- R.drawable.cc);
- Bitmap mbitmap_b = BitmapFactory.decodeResource(getResources(),
- R.drawable.bb);
- Bitmap mbitmap_e = BitmapFactory.decodeResource(getResources(),
- R.drawable.ee);
- Bitmap mbitmap_f = BitmapFactory.decodeResource(getResources(),
- R.drawable.ff);
- Drawable[] array = new Drawable[4];
- array[0] = new BitmapDrawable(mbitmap_b);
- array[1] = new BitmapDrawable(mbitmap_c);
- array[2] = new BitmapDrawable(mbitmap_e);
- array[3] = new BitmapDrawable(mbitmap_f);
- LayerDrawable la = new LayerDrawable(array);
- la.setLayerInset(0, 0, 0, 0, 0);
- la.setLayerInset(1, 80, 0, 0, 0);
- la.setLayerInset(2, 160, 0, 0, 0);
- la.setLayerInset(3, 240, 0, 0, 0);
- ImageView img = new ImageView(this);
- img.setImageDrawable(la);
- lay.addView(img);
- }
- }