#android #android-layout
#Android #android-макет
Вопрос:
У меня есть красивое, красивое изображение кнопки Facebook:
Но мой макет Android продолжает сжимать его:
Может кто-нибудь, пожалуйста, помогите, вот посмотрите на мой файл макета:
<?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"
android:orientation="vertical" >
<ImageView
android:id="@ id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@ id/tagline"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:contentDescription="@string/app_description"
android:src="@drawable/logo" />
<TextView
android:id="@id/tagline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/tagline"
android:textSize="22sp" />
<Button
android:id="@ id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tagline"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/login_button_normal"
android:text="@string/login"
android:textStyle="bold" />
</RelativeLayout>
Комментарии:
1. 9-исправьте свое изображение, чтобы явно указать, какую часть вы разрешаете изменить (т. Е. Нет)
2. Является ли ваша кнопка патчем 9? если это так, то он действительно плохо разработан. Я имею в виду 9 маркеров, которые можно нарисовать.
3. @DerGolem это не патч 9
4. @IllegalArgument Но это выглядит так: он имеет черную рамку размером 1 пиксель со всех сторон. И это заставляет меня думать о патче 9 (плохо отмечен)
Ответ №1:
Вы используете a Button
с текстом внутри. Свойство android:layout_width="wrap_content"
применяется к ширине текста, а не к ширине вашего рисованного фона.
Вы можете либо:
- Интегрируйте текст в свой файл .png.
- Используйте 9-patch
- Создайте рисованный прямоугольник с закругленными синими углами и создайте изображение только с белой буквой «f» с вертикальной линией. Затем вы можете использовать
TextView
с возможностью рисования внутри:<TextView ... android:text="Log in" android:drawableLeft="{Your image (white f)}" android:background="{Your drawable (blue background)}" ... />
Ответ №2:
Это потому, что вы устанавливаете фон для своей кнопки:
android:background="@drawable/login_button_normal"
android: background не сохраняет соотношение сторон изображения. Попробуйте ввести какой-нибудь большой текст, тогда вы можете начать задаваться вопросом, почему он увеличен. Также для ваших целей предпочтительнее использовать 9-patch png.