Что делает фон кнопки белым, не должен ли он быть прозрачным? - PullRequest
0 голосов
/ 20 января 2019

Как видите, фон кнопки прозрачный. Кажется, я не могу найти, где он установлен на белый в любом из файлов XML. Кнопка обозначена btnCapture, код указан ниже.

enter image description here

activity_main.xml

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextureView
        android:id="@+id/textureView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/btnCapture" />

    <Button
        android:text="@string/capture"
        android:id="@+id/btnCapture"
        android:layout_width="wrap_content"
        android:layout_height="92dp"
        android:background="@drawable/rounded_button"


        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        tools:layout_editor_absoluteX="157dp"
        tools:layout_editor_absoluteY="202dp" />

</RelativeLayout>

rounded_button.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <stroke android:color="#80000000"
    android:width="2dp"></stroke>
    <stroke android:color="#D3D3D3"></stroke>
    <size android:width="60dp"
        android:height="80dp"></size>
</shape>

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Есть два быстрых шага, чтобы сделать эту работу именно так, как вы хотите:

Сначала , измените вид с Button на TextView и примените фон rounded-button.xml. Это должно работать мгновенно. Немного сложно установить фон для кнопки, как видно здесь .

Во-вторых , я заметил, что в вашем файле rounded-button.xml нет элемента solid. Сплошной элемент позволяет установить фон макета. По этой причине я изменил один из ваших элементов stroke на элемент solid (в любом случае не должно быть двух элементов stroke). Ваш обновленный код rounded_button.xml показан ниже:

PS: Не забудьте изменить представление в вашем activity_main.xml с Button на TextView!

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <stroke android:color="#80000000"
        android:width="2dp">
    </stroke>

    <solid 
        android:color="#D3D3D3">
    </solid>

    <size 
        android:width="60dp"
        android:height="80dp">
    </size>

</shape>

Надеюсь, это поможет. Веселого кодирования!

0 голосов
/ 20 января 2019

Вы не изменяете ничего, связанного с пользовательским интерфейсом кнопки в вашем коде Java, так что нет, это не из-за кода Java.Это связано с XML.

Ваш фон кнопки - это нарисованное изображение с именем 'roundnded_button', но вы не разместили содержимое этого нарисованного файла.Таким образом, все, что мы можем сделать, это угадать, что нарисованный округленный_белок белый?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...