Что делает фон кнопки белым, разве он не должен быть прозрачным?

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

Что делает фон кнопки белым, разве он не должен быть прозрачным?

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>

Проблема не связана с Java. Обновите вопрос снимком вашего файла rounded_button.xml. Вот где проблема.

Taslim Oseni 20.01.2019 01:08

@Taslim Готово. Все еще не вижу, где проблема в этом файле.

Matt 20.01.2019 12:14

Я ответил на ваш вопрос.

Taslim Oseni 20.01.2019 17:06
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
99
2

Ответы 2

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

Ваш фон кнопки - это рисуемый файл с именем «rounded_button», но вы не опубликовали содержимое этого нарисованного файла. Итак, все, что мы можем сделать, это предположить, что drawable rounded_button белый?

Добавлен файл rounded_button.xml

Matt 20.01.2019 12:13

У вас есть 2 элемента «штрих» в rounded_button.xml и нет элемента «сплошной». И ни один из цветов в XML не является прозрачным. Прочтите его и/или погуглите «android shape xml».

Moonbloom 20.01.2019 12:23

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

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

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

PS: Не забудьте изменить вид в вашемactivity_main.xmlот кнопки к 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>

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

Привет! Спасибо за попытку, применил. Я изменил его на TextView и изменил файл rounded_button.xml на то, что вы поместили, но по-прежнему выводит белое поле, текст теперь находится за пределами формы, а форма странно искажена. Как вы можете видеть здесь: prnt.sc/maqqpq

Matt 22.01.2019 21:12

Добавьте android:gravity = "center" в XML-файл TextView, чтобы исправить положение текста. Чтобы избавиться от белого цвета, измените фон RelativeLayout на белый.

Taslim Oseni 22.01.2019 22:32

Если мое предложение выше работает, пожалуйста, отметьте это как правильный ответ. ;-)

Taslim Oseni 22.01.2019 22:35

Таким образом, ответ определенно зафиксировал текст за пределами области. Это сработало отлично. Несмотря на то, что я добавил белый фон в RelativeLayout, я все же получил эту белую область вокруг кнопки.

Matt 23.01.2019 16:01

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

Taslim Oseni 23.01.2019 20:07

Другие вопросы по теме