1. 程式人生 > >Android 實現映象效果

Android 實現映象效果

一、解析
—————————————————–

1、首先定義兩張圖片:
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mm3);
第二張根據第一張生成
Bitmap modBm = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());

2、以生成的第二張圖片做畫板
Canvas canvas = new Canvas(modBm);

3、建立矩陣,並水平平移
matrix.setScale(-1, 1);
matrix.postTranslate(bm.getWidth(), 0);

4、使用矩陣繪製映象圖片
canvas.drawBitmap(bm, matrix, paint);

5、最後設定到imageview裡

二、原始碼

/**
 * 鏡子效果
 * @author chen.lin
 *
 */
public class MirrorImageActivity extends Activity {

    private ImageView imageView1;
    private ImageView imageView2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super
.onCreate(savedInstanceState); setContentView(R.layout.activity_image_rotate); initViews(); } private void initViews() { imageView1 = (ImageView) findViewById(R.id.imageView1); imageView2 = (ImageView) findViewById(R.id.imageView2); Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mm3); imageView1.setImageBitmap(bm); Bitmap modBm = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig()); Canvas canvas = new
Canvas(modBm); Paint paint = new Paint(); paint.setColor(Color.BLACK); paint.setAntiAlias(true); Matrix matrix = new Matrix(); //matrix.setRotate(90, bm.getWidth()/2, bm.getHeight()/2); //matrix.setTranslate(20, 20); //鏡子效果 matrix.setScale(-1, 1); matrix.postTranslate(bm.getWidth(), 0); canvas.drawBitmap(bm, matrix, paint); imageView2.setImageBitmap(modBm); } }

佈局檔案:
**