2012-09-10 150 views
1

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

Button should look like this

文本1,文本2和图像必须从代码可定制的。

我在Android开发一个小白,我只能猜测,文本1和文本应该被定义为TextView的和图像应该被定义为ImageView的。但不可能将它们设置为按钮,因为按钮不是ViewGroup。

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

+1

是否必须是按钮?为什么不把它定义为'layout'并将onClick监听器设置为完整的布局呢? –

+0

在这种情况下,我不会支持触摸时的自动状态更改(因为onClick只能在触摸时发生) - 否则我将不得不编写一个复制Button功能的代码。 – Nick

+0

但是,正如我所提到的,我是Android noob,并且我听说Android SDK并不是最棒的一个...所以如果它不能成为Button,我会很乐意接受您的建议。 – Nick

回答

1

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

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

TouchListener方法,你会得到一个视图作为参数。所以,你使用

switch(viewObj.getId() 
{ 
    case R.layout.relative_layout_id : 
      //write your logic here 
    break; 
] 

在OnClick方法得到视图的ID,写你的逻辑,所以在任何你执行上相对布局的onclick()方法将执行单击。

+0

如果你觉得这个有用,请不要忘记接受答案/对我投票。 – RajeshVijayakumar

+0

我希望我的按钮(或布局)对用户的触摸进行视觉反应,而不仅仅是触摸。因此,我需要setOnTouchListener和setOnDragListener或其他。换句话说,我将不得不编写大量重复现有Button功能的代码。我不确定这很酷。 – Nick