【问题标题】:Change Button image & multiple text programatically以编程方式更改按钮图像和多个文本
【发布时间】:2014-04-17 10:48:22
【问题描述】:

我需要在 Android Activity 中以编程方式更改按钮背景图像。

场景概览:

用户单击第一个活动中的按钮,并将用户带到另一个第二个活动; 在他返回第一个活动后,初始按钮图像应该根据他在第二个活动上的操作而改变。

他再次单击按钮并移动到第三个活动,并执行一些操作并返回到第一个活动并出现初始按钮。

设置按钮图像的传统方式是这样的:

             <Button
                    android:id="@+id/button1"
                    style="@style/ButtonText"
                    android:background="@drawable/dynamics"
                    android:text="default"
                    android:textColor="@color/text_color" />

还有一些额外的动态文本显示在按钮中。 例如下面按钮中的日期(左下角)中的日期:

另外,请检查周末是如何变红的。

这几乎类似于 Apple 的日历按钮

我如何在 Android 中做同样的事情,尤其是按钮中的动态文本(更改日期)?

PS:以上2张图片是同一个按钮,有3个部分。同一个按钮中有 3 个不同的文本区域

【问题讨论】:

  • button.setText(text);?
  • @ElDuderino 它比那更复杂。与普通 Button 不同,此按钮将包含 3 个不同的文本,每次在我将此按钮绘制到屏幕之前,我都需要参考一些全局数据来获取所有 3 个文本的值。
  • 所以你重写了onDraw()?那你可能做错了,你想做的是建立一个复合视图...tiemenschut.com/how-to-create-compound-controls-for-android

标签: android button android-activity


【解决方案1】:

据我了解,你想做两件事:

  1. 动态设置按钮的背景图像。
  2. 动态设置 Button 的文本(即来自 Activity)。

可以按如下方式设置按钮的背景图片:

button1.setBackgroundResource(R.drawable.icon1);

并且按钮的文字可以设置如下:

b1.setText("Some text");

就全局数据而言,您可以在 Activity 中将字符串定义为“public static final”,并使用 switch case 来根据需要设置文本或图像。希望这会有所帮助。

【讨论】:

  • 按钮有多个文本。你是怎么做到的?
  • @iKishore 你是否设置了线性或其他布局的可点击和可聚焦属性来实现这个多文本效果按钮??
  • 我认为使用State List 可以让您的工作更轻松。
  • 实际上,状态列表定义了不同的状态以及在这些状态中使用的可绘制对象,因此在自定义视图中使用它会为您解决问题。自定义视图扩展视图类以创建自定义 UI 元素,如上图所示。这是一个不错的tutorial of custom view.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
相关资源
最近更新 更多