Java 不带XML的9patches中的自定义按钮
我想从9patches创建一个定制的Android按钮,但不使用任何XML。我知道,这听起来很愚蠢,但原因是出于某种原因,我的IDE(NetBeans)把整个XML搞得乱七八糟。Java 不带XML的9patches中的自定义按钮,java,android,button,mobile,Java,Android,Button,Mobile,我想从9patches创建一个定制的Android按钮,但不使用任何XML。我知道,这听起来很愚蠢,但原因是出于某种原因,我的IDE(NetBeans)把整个XML搞得乱七八糟。R.java有一半的时间不会生成(修复对我不起作用),而且我会出现随机错误,即使我只是从教程中复制和粘贴XML 以下是我计划如何创建按钮: 该按钮有一个setBackgroundDrawable()方法 我需要使用StateListDrawable 我需要从NinePatchDrawables 因此,首先我需要创建9个补
R.java
有一半的时间不会生成(修复对我不起作用),而且我会出现随机错误,即使我只是从教程中复制和粘贴XML
以下是我计划如何创建按钮:
setBackgroundDrawable()
方法StateListDrawable
NinePatchDrawables
StateListDrawable
,然后简单地将StateListDrawable
作为按钮的setBackgroundDrawable()
方法的背景
我无法启动9patches,因为我无法了解构造函数是如何工作的。如果您将时间投入到以下两个方面,是否更有意义:
- 修复NetBeans,或
- 切换到不同的编辑器/IDE李>
无论如何,您不需要直接使用
NinePatchDrawable
来使用九个补丁PNG文件。Android将为您处理该部分
相反,创建一个
StateListDrawable
的实例,并为每个状态调用addState()
。要获取状态的Drawable
,请使用getResources().getDrawable(R.Drawable.this是您的九个补丁图像之一)
从活动中获取。Android将检测到这是一个9补丁,并将做正确的事情。谢谢,我终于能够使用自定义按钮运行一个应用程序。但还有一个问题:android似乎没有意识到,我的DrawablesARA9补丁。如果我在按钮上加更多的文字,它就会变得一团糟。当我从资源文件加载drawable时,我尝试显式强制转换它们:NinePatchDrawable normal=(NinePatchDrawable)getResources().getDrawable(R.drawable.button_red_normal);但是我得到了一个错误。有没有办法告诉编译器/安卓系统/谁做的,将我的绘图作为9个补丁处理?