缩放图片 : matrix.setScale(0.5f,0.5f);

在Android中,可以通过创建Matrix对象并设置缩放比例来实现图片的缩放。以下示例代码展示了如何从相册选取图片,然后使用Matrix将图片按0.5的缩放比例进行缩放,并显示在ImageView上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MainActivity extends Activity implements OnClickListener {

      private  Button  bt;
      private  ImageView  iv;
      private  ImageView  iv_after;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
            setContentView(R.layout. activity_main);
            
             iv=(ImageView) findViewById(R.id. iv);
             bt=(Button) findViewById(R.id. bt);
             iv_after=(ImageView) findViewById(R.id. iv_after);
            
            
             bt.setOnClickListener( this);
            
      }

      
      
      /**
       * 获取图片的方法
       * @param v
       */
      @Override
      public void onClick(View v) {
            
             //创建隐式意图
        Intent intent= new Intent();
        intent.setAction( "android.intent.action.PICK");
        intent.addCategory(intent. CATEGORY_DEFAULT);
        intent.setType( "image/*");
       
        startActivityForResult(intent, 0);
    }
      
      
      
      /**
     * 获取Activity返回的数据
     */
    @Override
    protected void onActivityResult( int requestCode, int resultCode, Intent data) {
           super.onActivityResult(requestCode, resultCode, data);
         
          Uri uri = data.getData();   //接收到返回照片的 uri
          iv.setImageURI(uri);  
         
          try {
               
             //得到原图的bitmap   只读(要从这个bitmap读取像素点到其他的空白bitmap上)
                  Bitmap  bitmap=BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
                  
                   //创建一个空白可修改的bitmap   b1
                  Bitmap  alertBitmap=Bitmap.createBitmap(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getConfig());
                  
                   //将空白可修改的bitmap作为画布    b2
                  Canvas  canvas= new Canvas(alertBitmap);
                  
                   //创建画笔
                  Paint  paint= new  Paint();
                  paint.setColor(Color. GREEN);
                  
                   //在画布上画原图片的像素点
                Matrix matrix = new  Matrix();
                matrix.setScale(0.5f,0.5f);   //设置x,y方向的缩放比   
                canvas.drawBitmap(bitmap, matrix, paint);   //1.原图  2.矩阵   3.画笔
                  
                //将画好的b2挂在iv上
                iv_after.setImageBitmap(alertBitmap);
                  
            } catch (Exception e) {
                  
                  e.printStackTrace();
            }
          
          
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值