图片合成

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();
                canvas.drawBitmap(bitmap, matrix, paint);     //1.原图  2.像素点矩阵   3.画笔
                  
                  //得到小机器人小图标的位图
                Bitmap  robitBitmap=BitmapFactory.decodeResource(getResources(), R.drawable. ic_launcher );
                canvas.drawBitmap( robitBitmap, 200, 300, paint);      //将小机器人的位图画在画板上
               
               
                  //将画好的b2挂在iv上
                  iv_after .setImageBitmap(alertBitmap);
                  
            }   catch   (Exception e) {
                  
                  e.printStackTrace();
            }
          
          
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值