Как вы можете видеть здесь, фон кнопки прозрачен. Кажется, я не могу найти, где он установлен на белый, ни в одном из 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>
@Taslim Готово. Все еще не вижу, где проблема в этом файле.
Я ответил на ваш вопрос.




Вы не меняете ничего, связанного с пользовательским интерфейсом кнопки в вашем коде Java, так что нет, это не из-за кода Java. Это связано с XML.
Ваш фон кнопки - это рисуемый файл с именем «rounded_button», но вы не опубликовали содержимое этого нарисованного файла. Итак, все, что мы можем сделать, это предположить, что drawable rounded_button белый?
Добавлен файл rounded_button.xml
У вас есть 2 элемента «штрих» в rounded_button.xml и нет элемента «сплошной». И ни один из цветов в XML не является прозрачным. Прочтите его и/или погуглите «android shape xml».
Есть два быстрых шага, которые вы можете предпринять, чтобы сделать эту работу именно так, как вы хотите:
Первый, измените вид с 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
Добавьте android:gravity = "center" в XML-файл TextView, чтобы исправить положение текста. Чтобы избавиться от белого цвета, измените фон RelativeLayout на белый.
Если мое предложение выше работает, пожалуйста, отметьте это как правильный ответ. ;-)
Таким образом, ответ определенно зафиксировал текст за пределами области. Это сработало отлично. Несмотря на то, что я добавил белый фон в RelativeLayout, я все же получил эту белую область вокруг кнопки.
Извините за путаницу, я имел в виду, что вы должны изменить фон относительного макета с белого на любой другой цвет.
Проблема не связана с Java. Обновите вопрос снимком вашего файла
rounded_button.xml. Вот где проблема.