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

首頁 > 系統 > Android > 正文

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

2019-12-12 01:53:30
字體:
來源:轉載
供稿:網友

本文實例講述了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圖形與圖像處理技巧總結》、《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三门县| 合作市| 寿光市| 文安县| 平果县| 鄂托克旗| 壶关县| 紫阳县| 沁源县| 牡丹江市| 东城区| 承德县| 论坛| 金门县| 武汉市| 沅江市| 微博| 潮州市| 肥西县| 连州市| 霍城县| 虞城县| 长宁区| 淮阳县| 潞西市| 太仆寺旗| 泗阳县| 锦州市| 葫芦岛市| 柘荣县| 远安县| 云和县| 广平县| 黄大仙区| 阿坝| 剑阁县| 建水县| 巴林左旗| 贡觉县| 北宁市| 萨迦县|