Как показать текст на ImageButton?
у меня есть ImageButton и я хочу показать текст и изображения на нем. Но когда я примеряю эмулятор:
<ImageButton
android:text="OK"
android:id="@+id/buttonok"
android:src="@drawable/buttonok"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Я получаю изображение, но без текста. Как я могу показать текст? Пожалуйста, помогите мне!
10 ответов:
как вы не можете использовать
android:textЯ рекомендую вам использовать обычную кнопку и использовать один из составных чертежей. Например:<Button android:id="@+id/buttonok" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/buttonok" android:text="OK"/>вы можете поставить drawable везде, где вы хотите с помощью:
drawableTop,drawableBottom,drawableLeftилиdrawableRight.обновление
для кнопки это тоже работает довольно хорошо. Положить
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" />у меня просто была эта проблема и работает отлично.
технически можно поставить подпись на
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>
на самом деле
android:textне является аргументом, принятымImageButtonно, если вы пытаетесь получить кнопку с указанным фоном (не android по умолчанию) используйтеandroid:backgroundXML-атрибута, или объявить его из класса с.setBackground();
можно использовать
LinearLayoutвместоButtonэто договоренность, которую я использовал в своем приложении<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:background="@color/mainColor" android:orientation="horizontal" android:padding="10dp"> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/ic_cv" android:textColor="@color/offBack" android:textSize="20dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="@string/cartyCv" android:textColor="@color/offBack" android:textSize="25dp" /> </LinearLayout>
ребята мне нужно разработать настройки и кнопку выхода из системы, я использовал приведенный ниже код.
<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" />
вы можете использовать обычный
Buttonи атрибут android:drawableTop (или слева, справа, снизу) вместо этого.
лучшим образом:
<Button android:text="OK" android:id="@+id/buttonok" android:background="@drawable/buttonok" android:layout_width="match_parent" android:layout_height="wrap_content"/>
Я решил это, поставив
ImageButtonиTextViewвнутриLinearLayoutС вертикальной ориентацией. Отлично работает!<LinearLayout android:id="@+id/linLayout" android:layout_width="80dp" android:layout_height="wrap_content" android:orientation="vertical" > <ImageButton android:id="@+id/camera_ibtn" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" android:background="@drawable/camera" /> <TextView android:id="@+id/textView2" android:layout_width="80dp" android:layout_height="wrap_content" android:gravity="center" android:text="@string/take_pic" android:textColor="#FFFFFF" android:textStyle="bold" /> </LinearLayout>
вот хороший пример круга:
drawable/circle.xml:<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#ff87cefa"/> <size android:width="60dp" android:height="60dp"/> </shape>и затем кнопка в вашем xml-файле:
<Button android:id="@+id/btn_send" android:layout_width="60dp" android:layout_height="60dp" android:background="@drawable/circle" android:text="OK"/>
ImageButtonне может бытьtext(или, по крайней мере,android:textне указан в атрибутах).хитрость заключается в:
похоже, вам нужно использовать
Button(и посмотретьdrawableTopилиsetCompoundDrawablesWithIntrinsicBounds(int,int,int,int)).

Comments