Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 添加9-patch作为按钮背景后无法对齐文本_Android_Button_Background_Nine Patch - Fatal编程技术网

Android 添加9-patch作为按钮背景后无法对齐文本

Android 添加9-patch作为按钮背景后无法对齐文本,android,button,background,nine-patch,Android,Button,Background,Nine Patch,我有一个按钮,上面的文字需要在中心水平对齐。当按钮没有9面片作为背景时,重力可以正常工作。但当我添加一个9块作为背景时,重力就向左移动,文本拒绝移动,无论重力设置为什么 我已尝试将padding设置为0dip,-1px,@null,正如在其他一些线程上建议的那样。他们都没有工作。我正在使用setBackgroundResource()从代码中更改背景,因为我的需求被固定到API级别8,所以设置背景的其他方法不是一个选项。此外,我不能使用选择器列表来执行此操作,因为我需要该按钮处于选中状态(如切换

我有一个按钮,上面的文字需要在中心水平对齐。当按钮没有9面片作为背景时,重力可以正常工作。但当我添加一个9块作为背景时,重力就向左移动,文本拒绝移动,无论重力设置为什么

我已尝试将padding设置为0dip,-1px,@null,正如在其他一些线程上建议的那样。他们都没有工作。我正在使用setBackgroundResource()从代码中更改背景,因为我的需求被固定到API级别8,所以设置背景的其他方法不是一个选项。此外,我不能使用选择器列表来执行此操作,因为我需要该按钮处于选中状态(如切换按钮)


有什么意见吗

这是因为在9-patch图像中,您已指定了内容区域(请参见右下部分)

通常,右下部分用于内容填充(可选),所以如果您想通过编程设置填充,则不要操纵9补丁的右下部分


这是因为在9-patch图像中,您已指定了内容区域(请参见右下部分)

通常,右下部分用于内容填充(可选),所以如果您想通过编程设置填充,则不要操纵9补丁的右下部分


每次设置背景后,我都必须以编程方式将填充设置为0!这解决了我的问题


谢谢

每次设置背景后,我都必须以编程方式将填充设置为0!这解决了我的问题


谢谢

以下是解决此问题的另一种方法:


它使用带有9补丁背景的
RelativeLayout
,并将
TextView
放入其中。然后,您可以根据需要格式化和对齐文本,而无需中断9-patch marigins和填充。

下面是解决此问题的另一种方法:


它使用带有9补丁背景的
RelativeLayout
,并将
TextView
放入其中。然后,您可以随心所欲地格式化和对齐文本,而无需中断9-patch marigins和padding。

android:padding=“0dp”
添加到
按钮中对我来说很有效。

添加
android:padding=“0dp”
按钮
对我很有效。

检查并为该按钮背景的每个状态分配9-patch图像内容区域


我曾经忘记为按钮的按下状态设置9-patch图像内容区域,这会在正常状态下导致有线填充行为。

检查并为按钮背景的每个状态分配9-patch图像内容区域


我曾经忘记为按钮的按下状态设置9-patch图像内容区域,这会在正常状态下导致有线填充行为。

听起来发布9-patch不是一个坏主意,或者至少显示一个屏幕截图。听起来发布9-patch也不是一个坏主意,或者至少显示一个屏幕截图,我会验证这一点。感谢您的直观解释。根据此链接,它用于指示填充区域。这让人困惑。链接信息也是正确的,但它们使用了不同的术语。我将对此进行验证。感谢您的直观解释。根据此链接,它用于指示填充区域。链接信息也是正确的,但它们使用了不同的术语。