Android 图片的平移、缩放、旋转demo
2014-05-06 15:46
351 查看
代码里都有注释:
package com.example.imgs;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
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.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.os.Build;
public class MainActivity extends Activity {
ImageView iv;
Canvas canvas;
Paint paint;
Bitmap map;
Bitmap bi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv0 = (ImageView) findViewById(R.id.iv2);
iv = (ImageView) findViewById(R.id.iv2);
bi = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher1);
paint = new Paint();
paint.setColor(Color.BLACK);
}
/**
* 缩放方法
* @param view
*/
public void click1(View view) {
// TODO Auto-generated method stub
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
Matrix matrix = new Matrix();
//设置宽度缩放1/2
matrix.setScale(0.5f, 1);
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
/**
* 旋转
* @param view
*/
public void click2(View view) {
// TODO Auto-generated method stub
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
Matrix matrix = new Matrix();
//设置旋转30°,以图片中心
matrix.setRotate(30,bi.getWidth()/2,bi.getHeight()/2);
//设置算法,处理旋转后效果
paint.setAntiAlias(true);
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
/**
* 平移
* @param view
*/
public void click3(View view) {
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
// TODO Auto-generated method stub
Matrix matrix = new Matrix();
//向左平移10,向下平移10
matrix.setTranslate(10, 10);
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
public void click4(View view) {
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
// TODO Auto-generated method stub
Matrix matrix = new Matrix();
//镜子效果
matrix.setScale(-1, 1);
matrix.postTranslate(bi.getWidth(), 0);
//倒影效果
// matrix.setScale(1, -1);
// matrix.postTranslate(0, bi.getHeight());
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
}
package com.example.imgs;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
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.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.os.Build;
public class MainActivity extends Activity {
ImageView iv;
Canvas canvas;
Paint paint;
Bitmap map;
Bitmap bi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv0 = (ImageView) findViewById(R.id.iv2);
iv = (ImageView) findViewById(R.id.iv2);
bi = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher1);
paint = new Paint();
paint.setColor(Color.BLACK);
}
/**
* 缩放方法
* @param view
*/
public void click1(View view) {
// TODO Auto-generated method stub
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
Matrix matrix = new Matrix();
//设置宽度缩放1/2
matrix.setScale(0.5f, 1);
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
/**
* 旋转
* @param view
*/
public void click2(View view) {
// TODO Auto-generated method stub
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
Matrix matrix = new Matrix();
//设置旋转30°,以图片中心
matrix.setRotate(30,bi.getWidth()/2,bi.getHeight()/2);
//设置算法,处理旋转后效果
paint.setAntiAlias(true);
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
/**
* 平移
* @param view
*/
public void click3(View view) {
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
// TODO Auto-generated method stub
Matrix matrix = new Matrix();
//向左平移10,向下平移10
matrix.setTranslate(10, 10);
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
public void click4(View view) {
map = Bitmap.createBitmap(bi.getWidth(), bi.getHeight(), bi.getConfig());
canvas = new Canvas(map);
// TODO Auto-generated method stub
Matrix matrix = new Matrix();
//镜子效果
matrix.setScale(-1, 1);
matrix.postTranslate(bi.getWidth(), 0);
//倒影效果
// matrix.setScale(1, -1);
// matrix.postTranslate(0, bi.getHeight());
canvas.drawBitmap(bi, matrix, paint);
iv.setImageBitmap(map);
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/button1" android:onClick="click1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="缩放" /> <Button android:id="@+id/button2" android:onClick="click2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="旋转" /> <Button android:id="@+id/button2" android:onClick="click3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="平移" /> <Button android:id="@+id/button2" android:onClick="click4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="镜子效果" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/iv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher1" /> <ImageView android:id="@+id/iv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher1" /> </LinearLayout> </LinearLayout>
相关文章推荐
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- Android单点触控对图片进行平移,缩放,旋转操作
- Android对图片进行平移,缩放,旋转操作
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- android 图片的平移,缩放和旋转
- android中手势操作图片的平移、缩放、旋转
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- Android中利用Matrix实现图片平移、缩放和旋转
- Android-实现图片的简单特效(平移、缩放、旋转、镜面、倒影)
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- Android 利用Matrix实现图片随手指平移、旋转、缩放
- Android -- 图片处理, 画画板,缩放,旋转,平移,镜面,倒影,图片合成,颜色处理
- android中手势操作图片的平移、缩放、旋转
- Android单点触控对图片进行平移,缩放,旋转操作
- Android 利用Matrix实现图片随手指平移、旋转、缩放
- Android 通过Matrix来对图片进行缩放,旋转和平移
- 自定义控件: android中手势操作图片的平移、缩放、旋转 并保存
- Android 图片的平移、缩放、倒影、旋转实现
- Android -- 图片处理, 画画板,缩放,旋转,平移,镜面,倒影,图片合成,颜色处理