Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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
Java 不带XML的9patches中的自定义按钮_Java_Android_Button_Mobile - Fatal编程技术网

Java 不带XML的9patches中的自定义按钮

Java 不带XML的9patches中的自定义按钮,java,android,button,mobile,Java,Android,Button,Mobile,我想从9patches创建一个定制的Android按钮,但不使用任何XML。我知道,这听起来很愚蠢,但原因是出于某种原因,我的IDE(NetBeans)把整个XML搞得乱七八糟。R.java有一半的时间不会生成(修复对我不起作用),而且我会出现随机错误,即使我只是从教程中复制和粘贴XML 以下是我计划如何创建按钮: 该按钮有一个setBackgroundDrawable()方法 我需要使用StateListDrawable 我需要从NinePatchDrawables 因此,首先我需要创建9个补

我想从9patches创建一个定制的Android按钮,但不使用任何XML。我知道,这听起来很愚蠢,但原因是出于某种原因,我的IDE(NetBeans)把整个XML搞得乱七八糟。
R.java
有一半的时间不会生成(修复对我不起作用),而且我会出现随机错误,即使我只是从教程中复制和粘贴XML

以下是我计划如何创建按钮:

  • 该按钮有一个
    setBackgroundDrawable()
    方法
  • 我需要使用
    StateListDrawable
  • 我需要从
    NinePatchDrawables
  • 因此,首先我需要创建9个补丁,然后从它们创建一个
    StateListDrawable
    ,然后简单地将
    StateListDrawable
    作为按钮的
    setBackgroundDrawable()
    方法的背景


    我无法启动9patches,因为我无法了解构造函数是如何工作的。

    如果您将时间投入到以下两个方面,是否更有意义:

    • 修复NetBeans,或
    • 切换到不同的编辑器/IDE
    尝试在没有XML的情况下进行Android开发就像尝试在没有翅膀的情况下飞翔。这是可能的,但火箭最终往往会坠毁并燃烧


    无论如何,您不需要直接使用
    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个补丁处理?