在自定义图像视图上绘图

时间:2017-07-28 19:28:17

标签: android canvas view imageview

我正在使用图像编辑器,允许用户从图库中选择图像,然后在图像上绘制对象。

我创建了一个自定义ImageView,并使用所选图像调用了setImageBitmap。

问题是图像被放置在屏幕的中心,当我尝试绘制一个矩形形式(0,0)到(100,100)时,它从左上角开始绘制屏幕不是图像。

此外,所选位图的宽度和高度与自定义ImageView中onDraw()方法中画布的宽度和高度不同。怎么样?

1 个答案:

答案 0 :(得分:0)

选择图像后,制作所选图像的位图,然后尝试下面的代码:

int currentBitmapWidth = bitMap.getWidth();
int currentBitmapHeight = bitMap.getHeight();

int ivWidth = imageView.getWidth();
int ivHeight = imageView.getHeight();
int newWidth = ivWidth;

newHeight = (int) Math.floor((double) currentBitmapHeight *( (double) 
new_width / (double) currentBitmapWidth));

Bitmap newbitMap = Bitmap.createScaledBitmap(bitMap, newWidth, 
newHeight, true);

imageView.setImageBitmap(newbitMap)

这会将图像设置为imageView的大小。