java - Android 像素完美对齐

标签 java android xml

enter image description here

我正在我的应用程序顶部创建一个栏,与上面的栏非常相似。

图形嵌入到背景中,代表级别的数字等使用 TextView。

如您所见,TextView 必须像素(dp) 完美适合白条的中心。通过一些边距或填充我可以实现这一点。

但是这样的游戏如何在所有设备上保持相同的像素完美呢?

我了解资源限定符等,但同一存储桶中的某些设备具有不同的大小。

有没有好的方法或技巧可以在大多数设备上实现完美居中?

最佳答案

一般来说,只要您以相对单位执行所有操作并为每个屏幕尺寸包含 9 block 或图像,Android 就会处理跨设备的相对尺寸。

对于如何处理附加到 TextView 的图像的问题,您可以通过几种方法来完成。

TextView 将允许您在顶部、底部、左侧和右侧附加一个可绘制对象。您可以使用各种 setCompoundDrawable* 的代码来完成此操作方法。例如,这将在 TextView 的右侧和左侧添加一个可绘制对象。

txtScore.setCompoundDrawables(R.drawable.imageLeft, null, R.drawable.imageRight, null)

您还可以使用 XML 中的drawableLeft 等属性来执行此操作。您可能需要弄乱可绘制对象的填充和边界。

<TextView
    android:id="@+id/txtScore"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:drawableLeft="@drawable/imageLeft"
    android:drawableRight="@drawable/imageRight"
    android:drawablePadding="10dp"
    android:singleLine="true"
    android:text="125"/>

如果您查看 TextView 的 setCompoundDrawable 类型 API,代码中也会有许多不同的选项。

您的另一种选择是创建您自己的View,它会为您完成所有工作,但如果您只在一个地方使用它,则可能有点过分了。

同样,您确实需要考虑 9 block 图像或为可绘制文件夹中的每个屏幕尺寸创建图像。这将允许 Android 确定每个设备使用哪个图像。

关于java - Android 像素完美对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319163/

相关文章:

java - GraphQL Java 类生成器

java - 使用 RewriteRule 的 Tomcat webapp 反向代理

JAVA解析表数据

Android:AudioRecord 中推荐的 bufferSizeInBytes 值

javascript - 如何在 XSLT 中包含 CSS 文件

TorqueBox 中的 Java 部署

android - Android Studio Update 3.1之后如何修复项目?

android - 为什么 BLE 服务 UUid 在 android 和 iphone 中不同?

java - 创建树的 XSL 问题

java - Android 字符串问题 : How can I centralize all strings within my app?