带有文本和图像的 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 按钮的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 - 在文本上方创建带有可缩放图像的按钮的最合适方法