gpt4 book ai didi

Android:如何覆盖密度并仅使用像素?

转载 作者:行者123 更新时间:2023-11-30 04:42:33 25 4
gpt4 key购买 nike

我正在使用 Canvas 和位图绘制圆形、矩形文本等图形,并希望我的图形例程使用基于真实屏幕分辨率(以像素为单位)的实际像素,就像在 PC 图形应用程序上一样。显然,Android 操作系统旨在使用密度来尝试为用户提供独立于实际设备屏幕尺寸和分辨率的良好体验。但是,当我发出设置像素 x,y 的命令时,实际上设置像素 x,y 并且不让系统覆盖我的坐标会很好 - 是否可以覆盖系统以设置像素 x,y?

例如,如果屏幕设置为 320x480(G1 或 Hero),它工作正常 - 但在屏幕为 800x600 的平板电脑 (IMX515) 上,图形总是水平拉伸(stretch)。

我曾尝试设置不同密度的位图和 Canvas ,但没有任何效果 - 在平板电脑上,它们总是被拉伸(stretch)以填满屏幕的宽度。我也在 list 中尝试过

<supports-screens android:anyDensity=”true” />  

.

以下是一些基于 SurfaceView 的代码 fragment :—

(1) 在 Bitmap 创建和设置中(screenWidth,screenHeight 来自 metrics):-

backBitmap=Bitmap.createBitMap(screenWidth,screenHeight,Bitmap.config.ARGB_8888);

//backbitmap.setDensity(160)

backCanvas=new Canvas(backBitmap)

//backCanvas.setDensity(160);

.

(2)在绘图例程中:-

paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
backCanvas.drawCircle(50,50,30,paint);

.

(3)在Canvas的onDraw方法中:-

protected void onDraw(Canvas canvas){
if (drawingFlag==true){

// canvas.setDensity(160)

canvas.drawBitmap(backBitmap,0,0,null);
}

..* 解决方案****** 令人惊讶的是我是多么草率 - 我一直在使用 Media Player 并在创建 SurfaceView 时留下以下代码:-

holder=mySurfaceView.getHolder();
holder.setFixedSize(320,480);

这迫使绘图变成 320x480,然后在屏幕上缩放。修改如下固定问题

holder.setFixedSize(800,600) 

最佳答案

. . * 解决方案 ** 令人惊讶的是,我竟然如此草率 - 我一直在使用 Media Player,并在创建 SurfaceView 时留下了以下代码:-

holder=mySurfaceView.getHolder();
holder.setFixedSize(320,480);

这迫使绘图变成 320x480,然后在屏幕上缩放。修改如下固定问题

holder.setFixedSize(800,600)

关于Android:如何覆盖密度并仅使用像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699454/

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