您的位置:首页 > 移动开发 > Android开发

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

2016-09-06 18:24 447 查看
在前面的文章中陆续介绍了图片的旋转与缩放,本文继续介绍关于图片的操作

图片的平移

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

matrix.setTranslate(10, 10);



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

// 新建一个bitmap
Bitmap 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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: