图片合成

来源:互联网 发布:java图片上传下载 编辑:程序博客网 时间:2024/04/28 22:38
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();
            }
          
          
    }

}
原创粉丝点击