android按钮:将android:text放在android:drawableBottom按钮

时间:2016-04-13 16:58:15

标签: java android

有没有办法可以将text属性放在android:drawableBottom属性上面。这是我的尝试

这是以下代码的屏幕截图

enter image description here

 <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableBottom="@drawable/snap"
            android:textColor="#FFFFFF"
            android:background="#00FFFFFF"
            android:id="@+id/shutterButton"
            android:layout_weight="1"
            android:padding="5px"
            android:text="SNAP"></Button>

I want to place the SCAN Text on top of the image

EDITTED 这是显示按钮组如何以水平方向放置的线性布局

<LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#338FD8D8"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:orientation="horizontal"
                android:paddingBottom="10px"
                android:paddingTop="10px">
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@drawable/snap"
        android:textColor="#FFFFFF"
        android:background="#00FFFFFF"
        android:id="@+id/shutterButton"
        android:layout_weight="1"
        android:padding="5px"
        android:text="SNAP"></Button>

               <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/xxx"
        android:textColor="#FFFFFF"
        android:background="#00FFFFFF"
        android:id="@+id/xxx"
        android:layout_weight="1"
        android:padding="5px"
        android:text="xxx"></Button>

               <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/xxx"
        android:textColor="#FFFFFF"
        android:background="#00FFFFFF"
        android:id="@+id/xxx"
        android:layout_weight="1"
        android:padding="5px"
        android:text="xxx"></Button>


         </LinearLayout>

上面的代码没有将SNAP文本放在androidBottom属性的顶部。请帮助

2 个答案:

答案 0 :(得分:1)

尝试使用此代码。

在xml中替换此代码。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/shutterButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_weight="1"
        android:background="#FFFFFF"
        android:drawableBottom="@drawable/ic_question_answer_black_36dp"
        android:text="SNAP"
        android:textColor="#000000"
        android:textSize="20sp"></Button>
</RelativeLayout>

此处更改您的DrawableText Color以及您需要的Background Color

此处的屏幕截图。

enter image description here

它会为您提供Text以上的绘图。

编辑1:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="#338FD8D8"
        android:orientation="horizontal"
        android:paddingBottom="10dp"
        android:paddingTop="10dp">

        <Button
            android:id="@+id/shutterButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#00FFFFFF"
            android:drawableBottom="@drawable/ic_question_answer_black_36dp"
            android:padding="5px"
            android:text="SNAP"
            android:textColor="#000000" />

        <Button
            android:id="@+id/shutterButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#00FFFFFF"
            android:drawableBottom="@drawable/ic_question_answer_black_36dp"
            android:padding="5px"
            android:text="xxx"
            android:textColor="#000000" />

        <Button
            android:id="@+id/shutterButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#00FFFFFF"
            android:drawableBottom="@drawable/ic_question_answer_black_36dp"
            android:padding="5px"
            android:text="xxx"
            android:textColor="#000000" />


    </LinearLayout>
</RelativeLayout>

此处按钮组屏幕。

enter image description here

答案 1 :(得分:0)

是否必须在xml中使用layout_weight?如果没有,我想只需从xml中的按钮中删除它。如果您在布局中添加了很多视图,它会使您的绘图和文本陷入困境。

像这样一个: 如果我只是在我的布局中添加3个按钮,一切都运行得很好

checkDup

enter image description here

但如果我在布局中添加了很多按钮和1个recyclerview,那么所有按钮中的文字和可绘制都会很混乱

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@drawable/star_yellow"
        android:layout_weight="1"
        android:id="@+id/shutterButton"
        android:padding="5px"
        android:text="SNAP"></Button>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@drawable/star_yellow"
        android:layout_weight="1"
        android:id="@+id/shutterButton1"
        android:padding="5px"
        android:text="SNAP"></Button>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@drawable/star_yellow"
        android:layout_weight="1"
        android:id="@+id/shutterButton2"
        android:padding="5px"
        android:text="SNAP"></Button>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@drawable/star_yellow"
        android:layout_weight="1"
        android:id="@+id/shutterButton4"
        android:padding="5px"
        android:text="SNAP"></Button>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/fragmentMain_RvTourList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
</LinearLayout>

enter image description here

如果我将方向更改为水平方向,则布局将为:

enter image description here

和最后一个,更改按钮上的文本颜色和背景颜色,避免两种属性使用相同的颜色。