国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德庆县| 长岛县| 丰都县| 商都县| 巴彦县| 宿州市| 手游| 阿瓦提县| 通河县| 修武县| 湘西| 全州县| 行唐县| 沽源县| 保山市| 丰都县| 梧州市| 宣威市| 马关县| 滨州市| 漳州市| 西丰县| 永和县| 三穗县| 文成县| 观塘区| 岢岚县| 凌海市| 贵港市| 长顺县| 宿松县| 扶绥县| 孟村| 无锡市| 兴安县| 阜南县| 塘沽区| 乐安县| 互助| 昌图县| 西峡县|