1

Я пытаюсь добавить фоновое изображение для кнопки, и оно работает, но не так, как я ожидал.Фоновое изображение кнопки в android

1st picture (without background)

2nd picture (with background)

Я хотел фон, чтобы покрыть только кнопку. Другими словами, изображение должно иметь тот же вид, что и 2 кнопки сверху (я говорю о круглых углах и немного меньшем размере).

Вот XML-макета:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:showIn="@layout/activity_main" tools:context=".MainActivity" 
android:orientation="vertical"> 

<LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"> 
    <Button 
     android:onClick="playerStats" 
     android:text="@string/plStats" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 
</LinearLayout> 

<LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"> 
    <Button 

     android:text="@string/comp" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 
</LinearLayout> 

<LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"> 
    <Button 
     android:background="@drawable/calendar" 
     android:text="@string/calendar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 
</LinearLayout> 

+0

Вы пробовали использовать 'scaletype' –

ответ

2

его легко сделать

вы должны использовать ImageButton и удалить эти кнопки, например

<ImageButton 
    android:src="@drawable/calendar" 
    android:text="@string/calendar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 

также если вы хотите удалить фон этой кнопки, которую вы можете использовать:

android:background="@null" 
0

Самое простое решение: Вам нужно изменить фоновое изображение (сделать его немного меньше и имеют угол) - это может быть сделано легко с помощью Photoshop
чем использовать 9-patch инструмент для макияжа 9-патч изображения (9-патч изображения может автоматически изменять размер для размещения содержимого вида и размера экрана)

1

Rep кружева макета с этим макетом ... Это может быть helpfil для вас

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:showIn="@layout/activity_main" tools:context=".MainActivity" 
android:orientation="vertical"> 

<LinearLayout android:layout_weight="1" android:layout_height="match_parent" android:layout_width="match_parent"> 
    <Button 
     android:onClick="playerStats" 
     android:text="@string/plStats" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 
</LinearLayout> 
    <View ////I HAVE ADDED VIEW WHICH IS TRASNPARENT TO SEPRATE THE BUTTONS 
    android:layout_width="fill_parent" 
    android:layout_height="10dp" 

    android:background="@android:color/transparent" > 
</View> 


<LinearLayout android:layout_weight="1" android:layout_height="match_parent" android:layout_width="match_parent"> 
    <Button 

     android:text="@string/comp" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 
</LinearLayout> 

    <View ////I HAVE ADDED VIEW WHICH IS TRASNPARENT TO SEPRATE THE BUTTONS 
    android:layout_width="fill_parent" 
    android:layout_height="10dp" 

    android:background="@android:color/transparent" > 
</View> 


<LinearLayout android:layout_weight="1" android:layout_height="match_parent" android:layout_width="match_parent"> 
    <Button 
     android:background="@drawable/calendar" 
     android:text="@string/calendar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 
</LinearLayout> 

<View ////I HAVE ADDED VIEW WHICH IS TRASNPARENT TO SEPRATE THE BUTTONS 
    android:layout_width="fill_parent" 
    android:layout_height="10dp" 

    android:background="@android:color/transparent" > 
</View> 
+0

Я пробовал ваш код, однако это не совсем то, что мне нужно; он просто помещает некоторое пространство между кнопками –

+0

@LerulLer ... Что вы еще, на самом деле хотите bro ?? –

+0

Я хочу, чтобы изображение третьей кнопки (со второго снимка) имело тот же размер/форму, что и третья кнопка с первого изображения (если вы посмотрите внимательно, изображение со второго изображения немного больше, чем кнопка из 1-й снимок) –

0

«без b» ackground»кнопка на самом деле отображения его по умолчанию фона, поэтому установка нового фона будет переопределить угловую-округло-серую вещь ...

Проверить this question.

Вместо этого я рекомендую использовать ImageButton с android:src.

Смежные вопросы