原来做到过的类似图片 组合 ,叠加效果
(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();
}