android(39)(创建图形的拷贝、旋转、镜子效果、颜色变化)

1.创建图形的拷贝:
public class MainActivity extends Activity {
    private ImageView iv1,iv2;
    private Bitmap alterBitmap;//更改位图
    private Bitmap srcBmp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv1 = (ImageView) findViewById(R.id.iv1);
        iv2 = (ImageView) findViewById(R.id.iv2);
        //给第一个imageview默认设置一个位图
        srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        iv1.setImageBitmap(srcBmp);
        //创建原图的一个副本。 可修改  创建的是一个空白的图形。
        alterBitmap = Bitmap.createBitmap(srcBmp.getWidth()*2, srcBmp.getHeight()*2,srcBmp.getConfig());
    }
    /**
     * 创建原图 bm的一个拷贝。副本
     * @param view
     */
    public void click(View view){
        //1.准备一个画板  在上面放上准备好的 空白的位图
        Canvas canvas = new Canvas(alterBitmap);
        //2.准备一个画笔
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        //3.画画
        Matrix m = new Matrix();//matrix
        m.setScale(2.0f, 2.0f);//设置比例、
        canvas.drawBitmap(srcBmp, m, paint);
        iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
    }
}
2.图片的旋转:

public class MainActivity extends Activity {
    private ImageView iv1,iv2;
    private Bitmap alterBitmap;
    private Bitmap srcBmp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv1 = (ImageView) findViewById(R.id.iv1);
        iv2 = (ImageView) findViewById(R.id.iv2);
        //给第一个imageview默认设置一个位图
        srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat);
        iv1.setImageBitmap(srcBmp);
        //创建原图的一个副本。 可修改  创建的是一个空白的图形。
        alterBitmap = Bitmap.createBitmap(srcBmp.getWidth(), srcBmp.getHeight(),srcBmp.getConfig());
    }
    /**
     * 创建原图 bm的一个拷贝。副本
     * @param view
     */
    public void click(View view){
        //1.准备一个画板  在上面放上准备好的 空白的位图
        Canvas canvas = new Canvas(alterBitmap);
        //2.准备一个画笔
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        //3.画画
        Matrix m = new Matrix();
        m.setRotate(180, srcBmp.getWidth()/2, srcBmp.getHeight()/2);

        canvas.drawBitmap(srcBmp, m, paint);
        iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
    }
}
3.图片的镜子效果:
public class MainActivity extends Activity {
    private ImageView iv1,iv2;
    private Bitmap alterBitmap;
    private Bitmap srcBmp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv1 = (ImageView) findViewById(R.id.iv1);
        iv2 = (ImageView) findViewById(R.id.iv2);
        //给第一个imageview默认设置一个位图
        srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat);
        iv1.setImageBitmap(srcBmp);
        //创建原图的一个副本。 可修改  创建的是一个空白的图形。
        alterBitmap = Bitmap.createBitmap(srcBmp.getWidth(), srcBmp.getHeight(),srcBmp.getConfig());
    }
    /**
     * 创建原图 bm的一个拷贝。副本
     * @param view
     */
    public void click(View view){
        //1.准备一个画板  在上面放上准备好的 空白的位图
        Canvas canvas = new Canvas(alterBitmap);
        //2.准备一个画笔
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        //3.画画
        Matrix m = new Matrix();
        m.setScale(1.0f, -1.0f);
        m.postTranslate(0, srcBmp.getHeight());
        canvas.drawBitmap(srcBmp, m, paint);
        iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
    }
}
4.图片的颜色变化:
public class MainActivity extends Activity {
    private ImageView iv1,iv2;
    private Bitmap alterBitmap;
    private Bitmap srcBmp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv1 = (ImageView) findViewById(R.id.iv1);
        iv2 = (ImageView) findViewById(R.id.iv2);
        //给第一个imageview默认设置一个位图
        srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        iv1.setImageBitmap(srcBmp);
        //创建原图的一个副本。 可修改  创建的是一个空白的图形。
        alterBitmap = Bitmap.createBitmap(srcBmp.getWidth()*2, srcBmp.getHeight()*2,srcBmp.getConfig());
    }
    /**
     * 创建原图 bm的一个拷贝。副本
     * @param view
     */
    public void click(View view){
        //1.准备一个画板  在上面放上准备好的 空白的位图
        Canvas canvas = new Canvas(alterBitmap);
        //2.准备一个画笔
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        //3.画画
        Matrix m = new Matrix();

        ColorMatrix cm = new ColorMatrix();
        cm.set(new float[] {
        0.5f, 0, 0, 0, 0,
        0, 0.8f, 0, 0, 0,
        0, 0, 0.6f, 0, 0,
        0, 0, 0, 1, 0
        });
        paint.setColorFilter(new ColorMatrixColorFilter(cm));
        canvas.drawBitmap(srcBmp, m, paint);
        iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值