我正在尝试在Android中的画布上缩放位图。
我目前正在做的事情:
int scaleFactor = 0.01;
int size = screenWidth * screenHeight * scaleFactor;
Rect rect = new Rect(x,y, x + size, y + size);
canvas.drawBitmap(bitmap, null, rect, null);
问题在于密度较低的手机图像会比密度较高的手机小得多。
有人知道这个的策略或解决方案吗?
答案 0 :(得分:0)
这就是我解决它的方法。
而不是使用screenWidth * screenHeight计算屏幕上的所有像素。我计算了对角线,并用基于对角线长度的因子进行了缩放。
float x1 = 0; //left of screen
float y2 = 0; //top of screen
float x2 = screenWidth; //right of screen
float y2 = screenHeight; //bottom of screen
double distance = Math.sqrt(Math.pow(Math.abs(x1 - x2),2) + Math.pow(Math.abs(y1 - y2), 2));
int scaleFactor = 0.01;
int size = distance * scaleFactor;
Rect rect = new Rect(xPos,yPos, xPos + size, yPos + size);
canvas.drawBitmap(bitmap, null, rect, null);