刷新已缩放的图像,同时使其在android中保持缩放
有谁能告诉我如何在imageview中更改我已缩放的图像,同时保持图像缩放? 上一个图像和新图像的大小相同。 对于缩放功能,我使用的代码来自 我尝试过使用setimagebitmap、setimagedrawable和其他一些工具,但它们似乎都不起作用。每次刷新图像时,图像大小都会恢复为原始大小 多谢各位 下面是我的代码的样子:刷新已缩放的图像,同时使其在android中保持缩放,android,imageview,zooming,Android,Imageview,Zooming,有谁能告诉我如何在imageview中更改我已缩放的图像,同时保持图像缩放? 上一个图像和新图像的大小相同。 对于缩放功能,我使用的代码来自 我尝试过使用setimagebitmap、setimagedrawable和其他一些工具,但它们似乎都不起作用。每次刷新图像时,图像大小都会恢复为原始大小 多谢各位 下面是我的代码的样子: TouchImageView img,buffer; public void onCreate(Bundle savedInstanceState) { sup
TouchImageView img,buffer;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set multi touch zooming
img = new TouchImageView(this);
img.setMaxZoom(4f);
Bitmap img1 = BitmapFactory.decodeResource(getResources(), R.drawable.blueprint);
img.setImageBitmap(img1);
// refresh image
refreshImage();
setContentView(img);
}
public void refreshImage() {
handler.postDelayed(new Runnable() {
public void run() {
Bitmap img1 = BitmapFactory.decodeResource(getResources(), R.drawable.blueprint);
Canvas newImg = new Canvas(img1);
newImg.drawBitmap(img1, 0f, 0f, null);
Paint inner = new Paint();
Paint outer = new Paint();
inner.setARGB(255, 0, 138, 255);
outer.setARGB(100, 0, 138, 255);
newImg.drawCircle(axis[0], axis[1], 9, inner);
newImg.drawCircle(axis[0], axis[1], 50, outer);
buffer = img;
img.setImageBitmap(img1);
img.bmHeight = buffer.bmHeight;
img.bmWidth = buffer.bmWidth;
img.bottom = buffer.bottom;
img.setImageDrawable(buffer.getDrawable());
img.origHeight = buffer.origHeight;
img.origWidth = buffer.origWidth;
img.redundantXSpace = buffer.redundantXSpace;
img.redundantYSpace = buffer.redundantYSpace;
img.right = buffer.right;
img.saveScale = buffer.saveScale;
img.setImageMatrix(buffer.matrix);
img.setScaleType(ScaleType.MATRIX);
}
}, 2000);
}
编辑:现在我尝试将图像更改为以下内容的代码:
m = img.matrix;
img.setImageBitmap(img1);
img.matrix = m;
img.setImageMatrix(m);
但是我仍然有同样的问题。您是否尝试过在更改前保存图像的
矩阵
,并在更改后将矩阵重新应用于图像?您是否尝试过在更改前保存图像的矩阵
,并在更改后将矩阵
重新应用于图像?是的我通过获取以前的imagedrawable和imagematrix进行了尝试,并将其设置为新的,但它仍然不起作用
buffer和img
都指向同一个对象,您对img
所做的任何更改也将适用于buffer
。Soimg.bmHeight=buffer.bmHeight代码>等实际上是自我分配。作业不会复制对象。谢谢您提供的信息。现在我试着只复制矩阵。但我还是有同样的问题。将图像调整为其原始大小。我已将新代码发布到问题中。请再看一次。是的,我通过获取以前的imagedrawable和imagematrix进行了尝试,并将其设置为新的,但它仍然不起作用
buffer和img
都指向同一个对象,您对img
所做的任何更改也将适用于buffer
。Soimg.bmHeight=buffer.bmHeight代码>等实际上是自我分配。作业不会复制对象。谢谢您提供的信息。现在我试着只复制矩阵。但我还是有同样的问题。将图像调整为其原始大小。我已将新代码发布到问题中。请再看一次。你有什么工作要做吗?如果你发现了,请分享。谢谢你有什么工作要做吗?如果你发现了,请分享。谢谢