【问题标题】:How can i place two buttons side by side with an image at the bottom of the button?如何将两个按钮并排放置,并在按钮底部放置一个图像?
【发布时间】:2013-05-09 17:59:26
【问题描述】:

如何将两个按钮并排放置,并在按钮底部放置一个图像?

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
<Button
    android:id="@+id/a_button"
    android:layout_width="wrap_content"
    android:layout_height="35dp"
    android:text="Button-a" />
<Button
    android:id="@+id/b_button"
    android:layout_width="wrap_content"
    android:layout_height="35dp"
    android:text="Button-b" />

 </LinearLayout>

【问题讨论】:

  • 将布局覆盖在另一个垂直方向的LinearLayout,或者使用另一个更适合该工作的ViewGroup,例如RelativeLayout.
  • 你想要两个按钮的图片吗?

标签: java android xml android-layout android-button


【解决方案1】:

你可以使用线性布局(可点击)而不是使用按钮,并使用它的 id 而不是 Button id。像这样......使用它你可以根据你的要求自定义你的 Button。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="horizontal" >

//按钮-A

    <LinearLayout
        android:id="@+id/a_button"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="0.50"
        android:orientation="vertical" 
    android:clickable="true">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal|center_vertical"
            android:text="Text-A"
            android:paddingTop="10dip"
             />

        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:scaleType="fitXY"
            android:src="@drawable/image_A"
            android:paddingTop="13dip"  />

    </LinearLayout>

//用于水平分割线

     <TextView
        android:layout_width="2dp"
        android:layout_height="fill_parent"
        android:background="#303030"
        android:paddingTop="20dip" />

//按钮-B

     <LinearLayout

         android:id="@+id/b_button"
         android:layout_width="0dp"
         android:layout_height="fill_parent"
         android:layout_weight="0.50"
         android:orientation="vertical" 
     android:clickable="true">


        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Text-B"
            android:gravity="center_horizontal|center_vertical"
            android:paddingTop="10dip" />

        <ImageView
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:scaleType="fitXY"
             android:src="@drawable/image_B"
             android:paddingTop="13dip"
              />

    </LinearLayout>
</LinearLayout>

【讨论】:

    【解决方案2】:

    您可以使用 Drawable_Bottom 属性将图像放置在按钮的底部。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@android:attr/buttonBarStyle"
    android:orientation="horizontal" >
    
    <Button
        android:id="@+id/a_button"
        style="@android:attr/buttonBarButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@android:drawable/btn_star"
        android:text="Button-a" />
    
    <Button
        android:id="@+id/b_button"
        style="@android:attr/buttonBarButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@android:drawable/btn_star"
        android:text="Button-b" />
    
    </LinearLayout>
    

    【讨论】:

      【解决方案3】:

      只需将下面一行添加到两个按钮并指定要使用的可绘制对象。

      android:drawableBottom="@drawable/image"
      

      希望这会有所帮助。

      编辑: 如果您想按原样使用可绘制对象,即不修改其尺寸,则上述方法有效。如果您还希望修改可绘制尺寸,那么您可以通过下面编写的简单 Java 代码来实现:

      ((Button)findViewById(R.id.button)).setCompoundDrawables(null, null, null, getDrawable(getApplicationContext(), R.drawable.image, 25));
      

      ..... .....

      Drawable getDrawable(Context context, int drawable, float form_factor) {
          Drawable imgDrawable = context.getResources().getDrawable(drawable);
          imgDrawable.setBounds(0, 0, (int)form_factor, (int)form_factor);
          return imgDrawable;
      }
      

      【讨论】:

      • 如果您希望更改正在使用的可绘制对象的尺寸,我已经更新了我的解决方案。
      猜你喜欢
      • 2020-11-16
      • 2011-01-16
      • 2015-05-06
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      相关资源
      最近更新 更多