国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android開發實現圖片平移、縮放、倒影及旋轉功能的方法

2019-10-22 18:25:43
字體:
來源:轉載
供稿:網友

本文實例講述了Android開發實現圖片平移、縮放、倒影及旋轉功能的方法。分享給大家供大家參考,具體如下:

解析:

1)根據原來的圖片創建新的圖片

Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+20, bm.getHeight()+20, bm.getConfig());

2)設置到畫布

Canvas canvas = new Canvas(modBm);

3)使用矩陣進行平移…

Matrix matrix = new Matrix();matrix.setRotate(90, bm.getWidth()/2, bm.getHeight()/2);

4)把改變后圖片設置到

canvas.drawBitmap(bm, matrix, paint);imageView2.setImageBitmap(modBm);

示例代碼:

1、平移:

public class TranslateImageActivity 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.mm0);    imageView1.setImageBitmap(bm);    Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+20, bm.getHeight()+20, 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.postTranslate(20, 20);    canvas.drawBitmap(bm, matrix, paint);    imageView2.setImageBitmap(modBm);  }}

2、縮放

public class ScaleImageActivity extends BaseActivity {  private static final int DOUBLE = 2;  private ImageView iv1, iv2;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_scale_iamge);    iv1 = (ImageView) findViewById(R.id.imageView1);    iv2 = (ImageView) findViewById(R.id.imageView2);    Bitmap b1 = BitmapFactory.decodeResource(getResources(), R.drawable.p1);    iv1.setImageBitmap(b1);    Bitmap b2 = Bitmap.createBitmap(b1.getWidth()*DOUBLE, b1.getHeight(), Config.ARGB_8888);    Canvas canvas = new Canvas(b2);    Matrix matrix = new Matrix();    matrix.setValues(new float[]{        DOUBLE * 1.0f, 0,    0,//x        0,       1.0f,  0,//y        0,       0,    1.0f//z    });    canvas.drawBitmap(b1, matrix, new Paint());    iv2.setImageBitmap(b2);  }}

3、倒影

public class ShadeImageActivity 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(0, bm.getHeight());    canvas.drawBitmap(bm, matrix, paint);    imageView2.setImageBitmap(modBm);  }}

4、旋轉

public class RotateImageActivity 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.mm0);    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);    canvas.drawBitmap(bm, matrix, paint);    imageView2.setImageBitmap(modBm);  }}

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 砚山县| 防城港市| 通州市| 得荣县| 仁化县| 宜州市| 甘肃省| 荆门市| 普兰县| 凌源市| 色达县| 武清区| 马鞍山市| 汨罗市| 祁连县| 旬邑县| 永州市| 根河市| 乌拉特前旗| 固阳县| 潮安县| 定襄县| 乐业县| 丹阳市| 南部县| 蛟河市| 潼南县| 洛扎县| 新源县| 延庆县| 光山县| 韶山市| 丘北县| 九寨沟县| 九台市| 远安县| 承德县| 比如县| 福海县| 府谷县| 民勤县|