16个回答
引用 12 楼 xiaobeiweng 的回复:Quote: 引用 2 楼 youngc527 的回复:
创建一个800×480的 Bitmap
Bitmap bitmap = Bitmap.createBitmap ...
public class MyView extends View {
...
}
是不是这个,但是测试时没有显示
引用 10 楼 u010749756 的回复:Quote: 引用 2 楼 youngc527 的回复:
创建一个800×480的 Bitmap
Bitmap bitmap = Bitmap.createBitmap ...
Bitmap bitmap = Bitmap.createBitmap(800, 480, Config.ARGB_8888);//创建一个800*480的背景!
Canvas canvas = new Canvas(bitmap);//创建一个Canvas
canvas.drawBitmap(bitmap , matrix, paint); //好像没有一个方法能将原图绘制上去
private Bitmap scale(Bitmap origin) {
Bitmap bitmap = Bitmap.createBitmap(800, 480, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Rect target = null;
int orgWidth = origin.getWidth(), orgHeight = origin.getHeight();
int bgHeight = bitmap.getHeight(), bgWidth = bitmap.getWidth();
if (orgWidth * bgHeight > orgHeight * bgWidth) {
int newWidth = bgWidth, newHeight = newWidth * orgHeight / orgWidth;
target = new Rect(0, (bgHeight - newHeight) / 2, newWidth, (bgHeight + newHeight) / 2);
} else {
int newHeight = bgHeight, newWidth = newHeight * orgWidth / orgHeight;
target = new Rect((bgWidth - newWidth) / 2, 0, (bgWidth + newWidth) / 2, newHeight);
}
canvas.drawBitmap(origin, null, target, new Paint(Paint.DITHER_FLAG | Paint.FILTER_BITMAP_FLAG));
return bitmap;
}
2013-10-30 16:56:02 youngc527 13楼
背景可以自定义
2013-10-28 16:45:41 u010749756 1楼
创建一个800×480的 Bitmap
Bitmap bitmap = Bitmap.createBitmap ...
创建一个Canvas
Canvas canvas = new Canvas(bitmap)
计算一下中间的位置,把原图画上去
canvas.drawBitmap ...
如果需要,把bitmap保存成JPG/PNG,质量选高点
bitmap.compress ...
2013-10-28 17:41:41 youngc527 2楼
2楼正解,layout可以用ImageView,属性设置成fitY,或者center
2013-10-28 23:38:03 winteror 3楼
归根到底,是对图片做了一次缩放算法!
2013-10-29 09:03:12 xidianstudent 4楼
引用 4 楼 xidianstudent 的回复:归根到底,是对图片做了一次缩放算法!
求详细算法代码
2013-10-29 11:15:33 u010749756 5楼
引用 2 楼 youngc527 的回复:创建一个800×480的 Bitmap
Bitmap bitmap = Bitmap.createBitmap ...
创建一个Canvas
Canvas canvas = new Canvas(bitmap)
计算一下中间的位置,把原图画上去
canvas.drawBitmap ...
如果需要,把bitmap保存成JPG/PNG,质量选高点
bitmap.compress ...
大哥,可否再详细点
2013-10-29 11:53:29 u010749756 6楼
试试这个方法
/**
* 图片缩放
* @param bigimage
* @param newWidth
* @param newHeight
* @return
*/
public Bitmap tochange(Bitmap bigimage,int newWidth,int newHeight){
// 获取这个图片的宽和高
int width = bigimage.getWidth();
int height = bigimage.getHeight();
// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
// 计算缩放率,新尺寸除原始尺寸
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
// 缩放图片动作
matrix.postScale(scaleWidth, scaleHeight);
Bitmap bitmap = Bitmap.createBitmap(bigimage, 0, 0, width, height,matrix, true);
return bitmap;
}
2013-10-29 14:22:05 yudajun 7楼
创建一个空的Bitmap,然后使用该bitmap创建画布,把原来的图片缩放后,绘制在这个画布上。
2013-10-29 14:51:03 BuleRiver 8楼