Android:九补丁在一台设备上居中,但在另一台设备上稍微向右移动

标签 android nine-patch

我在全屏 View 的背景上放置了一张九补丁图像:

enter image description here enter image description here

它在 800x480 和 1280x720 屏幕上看起来就像我想要的那样:它在左右两侧有一些相等的透明空间。但是在全高清屏幕上,左侧的空白空间是右侧空间的两倍。但是我两边只有一个黑色像素,所以净空间应该是相等的。

然后我像这样修改了我的图像:

original scaled one

现在它看起来在全高清屏幕上居中,但在 800x480 上移到了右边。如何让它在所有设备上看起来都居中?

现在第一张图片在全高清设备上看起来像这样(这是 View 的底部):

enter image description here

第二个:

enter image description here

它们在 800x480 设备上看起来反之亦然。

布局就这么简单:

    ImageView ib = new ImageView(this);
    ib.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    ib.setBackgroundResource(R.drawable.scroll_both_ver);
    setContentView(ib);

更新:解决方案是在每个 drawable-* 文件夹中提供一个副本。

最佳答案

你的 9 patch top center black area 没有很好地居中,它右边的空间比左边大。不确定这如何解释你的问题,但尝试调整它

关于Android:九补丁在一台设备上居中,但在另一台设备上稍微向右移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16019892/

相关文章:

android - 9-patch - 缩小时保持不可拉伸(stretch)区域的高/宽比

android - 我正在尝试在 Jetpack Compose 中使用 Tab Row 我增加了指示器高度,现在我的文本隐藏在它后面如何解决?

android - 向 SD 卡写入文本时出现 EACCES(权限被拒绝)

android - 在 FirebaseRecyclerViewAdapter 中过滤

android - 如何向android模拟器发送http请求

Android Studio 无法识别可绘制对象中的 9patch 图像

android - BitmapFactory.decodeFile() 文件在解码时是否解压缩 JPEG 图像?

android - 9-patch 不起作用

android - Android 九补丁绘图中红色的含义

android - 我的 9 补丁图像停止工作