带有文本和图像的 Android 按钮

Posted

技术标签:

【中文标题】带有文本和图像的 Android 按钮【英文标题】:Android button with texts and image 【发布时间】:2012-09-03 14:06:00 【问题描述】:

我想在我的 android 应用程序中设置一个按钮,该按钮由文本(左对齐)、图像和另一个文本(右对齐)组成。

Text1、Text2 和图像必须可通过代码自定义。

我是Android开发的菜鸟,我只能猜测Text1和Text2应该定义为TextView,而image应该定义为ImageView。但是不可能将它们设置为 Button 的子级,因为 button 不是 ViewGroup。

如何在xml布局文件中指定?

【问题讨论】:

必须是按钮吗?为什么不直接将其定义为 layout 并将 onClick 侦听器设置为完整布局? 在这种情况下,我不赞成在触摸时自动更改状态(因为 onClick 只在 untouch 时出现)——否则我将不得不编写一个复制 Button 功能的代码。 但是,正如我所提到的,我是一个 Android 菜鸟,而且我听说 Android SDK 不是最出色的......所以如果它不能是一个按钮,我会接受你的建议感激不尽。 【参考方案1】:

是的,很简单。将所有这些组件放在一个相对布局中。然后按照这个:

RelativeLayout rl= ( RelativeLayout ) findViewById(R.layout.relative_layout_id);
rl.setOnClickListener(this);
rl.setOnTouchListener(this);
rl.setOnDragListener(this);

TouchListener 方法中,您将获得一个视图作为参数。所以你得到视图的 id 使用

switch(viewObj.getId()

  case R.layout.relative_layout_id :
             //write your logic here
   break;
]

在 OnClick 方法中,编写您的逻辑,这样无论您在哪里执行点击该相关布局,您的 onclick() 方法都会执行。

【讨论】:

如果您觉得这很有用,请不要忘记为我接受回答/赞成票。 我希望我的按钮(或布局)对用户的触摸做出视觉反应,而不仅仅是不触摸。因此我需要 setOnTouchListener 和 setOnDragListener 之类的。换句话说,我将不得不编写大量复制现有 Button 功能的代码。而且我不确定它是否酷。

以上是关于带有文本和图像的 Android 按钮的主要内容,如果未能解决你的问题,请参考以下文章

Android:创建一个带有图像且没有文本的切换按钮

是否可以有一个带有顶部文本的背景图像的按钮?

带有透明文本的 Android 按钮

Swift 3 - 在文本上方创建带有可缩放图像的按钮的最合适方法

如何在 Android Canvas 中绘制带有文本的矩形按钮?

Android:将按钮文本移动到底部