bitmap 图片组合

原来做到过的类似图片 组合 ,叠加效果
(save, restore)

//将2张图片合并,叠加,平铺
public Bitmap drawIntoBitmap(Bitmap src, Bitmap inbm){

 // 另外创建一张组合后的图片  
        Bitmap newb = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Config.ARGB_8888);

        Canvas canvas = new Canvas(newb); 

        canvas.drawBitmap(src, 0, 0, null);
        canvas.drawBitmap(inbm, (src.getWidth() - inbm.getWidth()) / 2, (src.getHeight() - inbm.getHeight()) / 2, null); //组合图片 

//      canvas.save(Canvas.ALL_SAVE_FLAG); 
//      canvas.restore(); 
        inbm.recycle(); 
        inbm = null; 
        return newb; 
    }  

组合前 或组合后对图片的设置

public Bitmap ScaleBitmap(){

        Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.aaa); 
        Matrix matrix=new Matrix(); 

        //对位图进行缩放的设置,不过要注意此时整个画布都缩放了。 
        matrix.postScale(0.8f, 0.8f); 

        //对进行旋转的设置
        matrix.postRotate(45); 

        Bitmap dstbmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),bmp.getHeight(),matrix,true); 
        canvas.drawColor(Color.BLACK); 
        canvas.drawBitmap(dstbmp, 10, 10, null);
        return dstbmp;
    }  

// save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。 
// restore:用来恢复Canvas之前 save 保存之前的状态。防止save后对Canvas执行的操作对后续的绘制有影响。 
    public void canvasSaveRestore(){

        canvas.drawRect(0, 0, px, py, backgroundPaint);  

        canvas.save();  

        canvas.rotate(90, px/2, py/2);                 
        // Draw up arrow 
        canvas.drawLine(px / 2, 0, 0, py / 2, linePaint);                 
        canvas.drawLine(px / 2, 0, px, py / 2, linePaint);  

        canvas.restore();  

    }  

你可能感兴趣的:(bitmap 图片组合)