如何在ImageButton上显示文本?

Võ *_*Hòa 120 android imagebutton

我有一个ImageButton,我想在上面显示文字和图像.但是当我尝试模拟器时:

<ImageButton 
    android:text="OK" 
    android:id="@+id/buttonok" 
    android:src="@drawable/buttonok"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

我得到的图像,但没有文字.我该如何显示文字?请帮我!

Cri*_*ian 254

由于你不能使用android:text我建议你使用普通按钮并使用复合drawables之一.例如:

<Button 
    android:id="@+id/buttonok" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/buttonok"
    android:text="OK"/>
Run Code Online (Sandbox Code Playgroud)

您可以通过把绘制无论你想:drawableTop,drawableBottom,drawableLeftdrawableRight.

UPDATE

对于一个按钮,这也很好.推杆android:background很好!

<Button
    android:id="@+id/fragment_left_menu_login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_bg"
    android:text="@string/login_string" />
Run Code Online (Sandbox Code Playgroud)

我刚刚遇到这个问题并且工作正常.

  • 如何缩放图像以适合按钮?或者它会自动调整图像以适应按钮. (5认同)
  • @shim drawableTop将drawable放在按钮的顶部,drawableRight放在底部,等等. (3认同)
  • 这个选项效果最好,除非你需要某种疯狂的按钮布局,比如两个textview的图像.我最初尝试了一个定义为widget.button的布局对象,然后在其中放置了一个imageview和一个textview,但在对其进行分析以及上面的Button布局后,我节省了近30%的测量时间,50%的布局时间,以及15我的FramLayout的抽奖时间为-20%,从38个对象减少到26个.这是相当可观的节省. (2认同)
  • 与@Stallman一样的问题,如何使用按钮调整图像,并将其设置在左侧? (2认同)

Unc*_*van 61

ImageButton如果你真的想要这样做,在技​​术上可以设置一个标题.只是把它TextView放在ImageButton使用上FrameLayout.只记得不要Textview点击.

例:

<FrameLayout>
    <ImageButton
        android:id="@+id/button_x"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@null"
        android:scaleType="fitXY"
        android:src="@drawable/button_graphic" >
    </ImageButton>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clickable="false"
        android:text="TEST TEST" >
    </TextView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

  • 此方法的问题是文本不受按钮状态(禁用等)的影响...除非您手动执行此操作. (2认同)

Nav*_*mad 10

伙计们,我需要开发设置和注销按钮,我使用了以下代码。 在此处输入图片说明

    <Button
        android:id="@+id/imageViewLogout"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/size_30dp"
        android:layout_alignParentLeft="true"
        android:text="Settings"
        android:drawablePadding="10dp"
        android:background="@android:color/transparent"
        android:layout_alignParentBottom="true"
        android:drawableTop="@drawable/logout" />
Run Code Online (Sandbox Code Playgroud)