首页 > 代码库 > Android 图片的平移和镜面和倒影效果

Android 图片的平移和镜面和倒影效果

在前面的文章中陆续介绍了图片的旋转与缩放,本文继续介绍关于图片的操作

图片的平移

使用下面的代码将图水平竖直方向平移10个像素

matrix.setTranslate(10, 10);

技术分享

可以看到图片不完整,需要修改代码:

// 新建一个bitmapBitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth() * 2,                bitmap1.getHeight() * 2, bitmap1.getConfig());

其他代码均不变

图片的镜面效果

代码如下:

matrix.setScale(-1, 1);matrix.postTranslate(bitmap1.getWidth(), 0);

实现的效果:

技术分享

图片的倒影效果

代码如下:

//倒影效果matrix.setScale(1, -1);matrix.postTranslate(0, bitmap1.getHeight());        

实现的效果:

技术分享

完整代码如下:

package com.wuyudong.resize;import android.os.Bundle;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.view.Menu;import android.widget.ImageView;public class MainActivity extends Activity {    private ImageView iv1;    private ImageView iv2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iv1 = (ImageView) findViewById(R.id.iv_1);        iv2 = (ImageView) findViewById(R.id.iv_2);        // 设置第一个bitmap的图标        Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(),                R.drawable.unlock);        iv1.setImageBitmap(bitmap1);        // 新建一个bitmap        Bitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth() * 2,                bitmap1.getHeight() * 2, bitmap1.getConfig());        // 以alterBitmap为模板新建画布        Canvas canvas = new Canvas(alterBitmap);        // 新建画笔并设置属性        Paint paint = new Paint();        paint.setColor(Color.BLACK);        // 新建矩阵并设置缩放值        Matrix matrix = new Matrix();                //镜面效果        //matrix.setScale(-1, 1);        //matrix.postTranslate(bitmap1.getWidth(), 0);                //倒影效果        matrix.setScale(1, -1);        matrix.postTranslate(0, bitmap1.getHeight());                //平移效果        // matrix.setTranslate(10, 10);        // 设置画布        canvas.drawBitmap(bitmap1, matrix, paint);        iv2.setImageBitmap(alterBitmap);    }}

 

Android 图片的平移和镜面和倒影效果