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

android(39)(创建图形的拷贝、旋转、镜子效果、颜色变化)

2015-12-07 17:25 537 查看
1.创建图形的拷贝:
public class MainActivity extends Activity {
private ImageView iv1,iv2;
private Bitmap alterBitmap;//更改位图
private Bitmap srcBmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
//给第一个imageview默认设置一个位图
srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
iv1.setImageBitmap(srcBmp);
//创建原图的一个副本。 可修改  创建的是一个空白的图形。
alterBitmap = Bitmap.createBitmap(srcBmp.getWidth()*2, srcBmp.getHeight()*2,srcBmp.getConfig());
}
/**
* 创建原图 bm的一个拷贝。副本
* @param view
*/
public void click(View view){
//1.准备一个画板  在上面放上准备好的 空白的位图
Canvas canvas = new Canvas(alterBitmap);
//2.准备一个画笔
Paint paint = new Paint();
paint.setColor(Color.BLACK);
//3.画画
Matrix m = new Matrix();//matrix
m.setScale(2.0f, 2.0f);//设置比例、
canvas.drawBitmap(srcBmp, m, paint);
iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
}
}
2.图片的旋转:

public class MainActivity extends Activity {
private ImageView iv1,iv2;
private Bitmap alterBitmap;
private Bitmap srcBmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
//给第一个imageview默认设置一个位图
srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat);
iv1.setImageBitmap(srcBmp);
//创建原图的一个副本。 可修改  创建的是一个空白的图形。
alterBitmap = Bitmap.createBitmap(srcBmp.getWidth(), srcBmp.getHeight(),srcBmp.getConfig());
}
/**
* 创建原图 bm的一个拷贝。副本
* @param view
*/
public void click(View view){
//1.准备一个画板  在上面放上准备好的 空白的位图
Canvas canvas = new Canvas(alterBitmap);
//2.准备一个画笔
Paint paint = new Paint();
paint.setColor(Color.BLACK);
//3.画画
Matrix m = new Matrix();
m.setRotate(180, srcBmp.getWidth()/2, srcBmp.getHeight()/2);

canvas.drawBitmap(srcBmp, m, paint);
iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
}
}
3.图片的镜子效果:
public class MainActivity extends Activity {
private ImageView iv1,iv2;
private Bitmap alterBitmap;
private Bitmap srcBmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
//给第一个imageview默认设置一个位图
srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat);
iv1.setImageBitmap(srcBmp);
//创建原图的一个副本。 可修改  创建的是一个空白的图形。
alterBitmap = Bitmap.createBitmap(srcBmp.getWidth(), srcBmp.getHeight(),srcBmp.getConfig());
}
/**
* 创建原图 bm的一个拷贝。副本
* @param view
*/
public void click(View view){
//1.准备一个画板  在上面放上准备好的 空白的位图
Canvas canvas = new Canvas(alterBitmap);
//2.准备一个画笔
Paint paint = new Paint();
paint.setColor(Color.BLACK);
//3.画画
Matrix m = new Matrix();
m.setScale(1.0f, -1.0f);
m.postTranslate(0, srcBmp.getHeight());
canvas.drawBitmap(srcBmp, m, paint);
iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
}
}
4.图片的颜色变化:
public class MainActivity extends Activity {
private ImageView iv1,iv2;
private Bitmap alterBitmap;
private Bitmap srcBmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
//给第一个imageview默认设置一个位图
srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
iv1.setImageBitmap(srcBmp);
//创建原图的一个副本。 可修改  创建的是一个空白的图形。
alterBitmap = Bitmap.createBitmap(srcBmp.getWidth()*2, srcBmp.getHeight()*2,srcBmp.getConfig());
}
/**
* 创建原图 bm的一个拷贝。副本
* @param view
*/
public void click(View view){
//1.准备一个画板  在上面放上准备好的 空白的位图
Canvas canvas = new Canvas(alterBitmap);
//2.准备一个画笔
Paint paint = new Paint();
paint.setColor(Color.BLACK);
//3.画画
Matrix m = new Matrix();

ColorMatrix cm = new ColorMatrix();
cm.set(new float[] {
0.5f, 0, 0, 0, 0,
0, 0.8f, 0, 0, 0,
0, 0, 0.6f, 0, 0,
0, 0, 0, 1, 0
});
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(srcBmp, m, paint);
iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: