java - 从java代码更新按钮(xml)内的图片

标签 java android xml button drawable

<分区>

(android 2.1 或更高版本的 java/xml)

我正在使用样式创建按钮:

<style name="MainButton">
    <item name="android:textColor">#000000</item>
    <item name="android:text">test</item>
    <item name="android:drawableRight">@drawable/ic_launcher</item>
    <item name="android:drawablePadding">10dip</item>
    <item name="android:paddingLeft">10dip</item>
</style>

我知道我可以更改文本(从我的 java 代码),例如:

Button but = (Button)findViewById(R.id.button2);
    but.setText(Html.fromHtml("<b>" + "title" + "</b>" +  "<br />" + 
            "<small>" + "description" + "</small>" + "<br />" + 
            "<small>" + "DateAdded" + "</small>"));

看起来很好,但是 如何从我的 Java 代码更改该按钮内的可绘制对象?

我不想使用“button.setBackgroundResource();”方法。

有什么想法吗? :>

最佳答案

我想你想要一个自定义选择器

创建自定义选择器并将其设置为 xml 中的可绘制资源。

例子:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" 
        android:drawable="@drawable/cell_top_selected" />
    <item android:drawable="@drawable/cell_top" />
</selector>

使用这个语句

yourbutton.setSelected(true)  // for selection image
yourbutton.setSelected(false) // for alternate image

如果你不想这样

   I dont want to use "button.setBackgroundResource();" method.

如果你不想使用setBackGround Resouce那么

取而代之的是 TextView,Button 的父类(super class)是 TextView,默认情况下 TextView 没有任何背景可绘制资源。

关于java - 从java代码更新按钮(xml)内的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15293559/

相关文章:

Android 数据绑定(bind),与元素类型 "android:text"关联的属性 "TextView"的值不得包含 '<' 字符

html - 如何在没有来自类 "B"的第一个 div 的情况下查找所有 div 元素中的文本

java - 在 Java 中使用 OpenImaj 从视频中提取帧

java - 为什么 Spring @Transactional 成功回滚(SQL 插入)但在(SQL 更新)时失败 - 多个数据源

java - 读取来自 Weather Underground 的 JSON 回复

android - 操作栏移动选项卡指示器

Java 运行异步进程

Android:以阿拉伯语格式显示数字

xml - 如何使用 JAXB 解析带有命名空间的 XML

java - 谷歌云消息开发者 Android 代码崩溃