gpt4 book ai didi

java - canvas.drawBitmap() 不缩放图像

转载 作者:行者123 更新时间:2023-12-01 23:14:01 26 4
gpt4 key购买 nike

我是 Android 编码方面的新手。作为第一个项目,我决定移植 ZX Spectrum 游戏。我已经准备好了汽车的位图框架和按钮,它们将根据屏幕尺寸进行缩放。我已将图像放在“drawable”和“drawable-hdpi”文件夹中,它似乎可以在我的 LG Leon 手机上运行,​​但不能在其他手机上运行。看起来图像没有缩放。 https://mechanism.fr/misc/not_scaled.png

这是我的代码:变量声明:

    Rect source1;
Rect dest1;
Rect arrow_box;
Rect left_box;
Rect right_box;
Rect up_box1;
Rect down_box1;
Rect up_box2;
Rect down_box2;

计算一对 Rect 尺寸的示例:

    private void calculateDimensions(){
(...)
source1=new Rect(0,0,128,100);
arrow_box=new Rect(0,0,300,300);
left_box=new Rect((int)(0+boxxy/2),(int)(wysokosc*0.7),(int)(0+boxxy/2+boxxy),(int)(wysokosc*0.7+boxxy));

以及负责绘图的代码:

            Paint drawPaint2 = new Paint();
canvas.drawBitmap(arrow_left_off,arrow_box,left_box,drawPaint2);
canvas.drawBitmap(arrow_right_off,arrow_box,right_box,drawPaint2);
canvas.drawBitmap(arrow_up_off,arrow_box,up_box1,drawPaint2);
canvas.drawBitmap(arrow_down_off,arrow_box,down_box1,drawPaint2);
canvas.drawBitmap(arrow_up_off,arrow_box,up_box2,drawPaint2);
canvas.drawBitmap(arrow_down_off,arrow_box,down_box2,drawPaint2);

尺寸是在创建 Canvas View 后计算的:

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
kanwas=new CanvasV(this);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(kanwas);
getDimensions();
calculateDimensions();
updateScreen();


}

我不太明白问题所在。

我尝试将图像复制到“drawable”和“drawable-hdpi”文件夹

最佳答案

此外,缩放位图。缩放 Canvas 不会执行任何操作。

缩放位图示例

bitmap=Bitmap.createScaledBitmap(src, dstWidth, dstHeight, 过滤器)

关于java - canvas.drawBitmap() 不缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58362105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com