如何在Android中的图像按钮下添加文本?

时间:2012-01-15 08:17:42

标签: android button imagebutton

我想在图像按钮下添加文本,这些按钮也是可点击的,并且会被重定向到与图像按钮相同的活动。基本上它就像任何Android手机中的应用程序列表,例如enter image description here

4 个答案:

答案 0 :(得分:11)

如果您在XML中声明了ImageButton,那么只需将其放入LinearLayout,其中还包含TextView,并在onClickListener上设置LinearLayout }。结构就像

<LinearLayout 
      ... > <!-- This is the LinearLayout for the xml document -->

    <!-- Some other layout code here if you please -->
    <LinearLayout 
       android:id="@+id/linLayout"
            ... >
         <ImageButton
               ... />
         <TextView
               ... />
    </LinearLayout>
</LinearLayout>

然后在你的java:

LinearLayout layout = (LinearLayout)findViewById(R.id.linLayout);
        layout.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

如果您通过java代码动态添加每个ImageButton,那么它仍将保持相同的结构。如果我需要添加任何内容,请告诉我。

答案 1 :(得分:7)

setAlpha并执行以下操作

<Button
        android:id="@+id/comparePack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:onClick="compareButtonClick"
        android:text="@string/compare" 
         android:drawableTop="@drawable/compare1edit"
        android:gravity="left|center_vertical"/>

答案 2 :(得分:1)

如果你想创建这个列表之王使用gridview 并且在getview方法中使用imageview和textview

来膨胀customlayout

答案 3 :(得分:0)

您还可以将onClickListener设置为TextView

<!-- Some other layout code here if you please -->
<LinearLayout 
   android:id="@+id/linLayout"
        ... >
     <ImageButton android:id="@+id/btn1"
           ... />
     <TextView android:id="@+id/tv1"
           ... />
</LinearLayout>

java代码:

ImageButton btn1 = (ImageButton) findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                myClick();

            }
        });


TextView tv1 = (TextView) findViewById(R.id.tv1);
tv1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myClick();

            }
        });