Я написал пользовательский вид, который рисует круг. Затем я положил его на относительную компоновку. Также я ставлю стандартную кнопку, чтобы они перекрывались. И я вижу, что кнопка прозрачна. Как сделать его не прозрачным?
Я написал пользовательский вид, который рисует круг. Затем я положил его на относительную компоновку. Также я ставлю стандартную кнопку, чтобы они перекрывались. И я вижу, что кнопка прозрачна. Как сделать его не прозрачным?
Стандартная кнопка с тематическим голосом частично прозрачна. Вы можете создать новую кнопку 9.png для использования в кнопке или создать новую кнопку с помощью drawable.
Здесь ссылка о том, как сделать последнее:
Установите фон @android:drawable/btn_default
, чтобы избавиться от прозрачности голой темы
вы можете поместить эту кнопку в отдельный рамочный макет, чтобы ваш взгляд не влиял на кнопку, и эта идея
сохраните ниже код как xml в папке с возможностью переноса и укажите этот xml в качестве фона кнопки
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="0dp" android:color="#ffffff" />
<solid android:color="#000000"/>
<corners android:radius="1px"/>
<padding android:left="5dp" android:top="3dp" android:right="5dp" android:bottom="3dp" />
</shape>
Пример:
android:background="@drawable/<< your file name>>"
Я был с той же проблемой, но с ToggleButton. Уродливым, но быстрым решением было разместить ImageView прямо за кнопкой и изменить его margin
s, background
и alpha
, чтобы поместиться в эту кнопку. Например, внутри RelativeLayout:
<ImageView
android:layout_alignLeft="@+id/toggleButton"
android:layout_alignBottom="@+id/toggleButton"
android:layout_alignRight="@+id/toggleButton"
android:layout_alignTop="@+id/toggleButton"
style="@style/HackBackgroundToggleButton" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toggleButton"
... />
И, чтобы уменьшить видимый хак, извлеченный стиль:
<style name="HackBackgroundToggleButton">
<item name="android:layout_width">84dp</item>
<item name="android:layout_height">42dp</item>
<item name="android:background">#FFFFFF</item>
<item name="android:layout_marginTop">4dp</item>
<item name="android:layout_marginLeft">4dp</item>
<item name="android:layout_marginRight">4dp</item>
<item name="android:layout_marginBottom">4dp</item>
<item name="android:alpha">0.75</item>
</style>
Голосовая прозрачность фактически встроена в файлы PNG. Таким образом, единственный реальный способ изменить это - отредактировать PNG и сделать их непрозрачными. На самом деле это не так просто. Вам нужно умножить альфа-канал изображения на 255/102. Это непросто!
Но поскольку я такой гений, я нашел способ сделать это. В основном я скопировал все соответствующие PNG и XML в свою собственную структуру каталогов (только кнопки -mdpi
, -hdpi
и -xhdpi
). Затем я запустил это:
для FILE в find . -name *.png
; make mogrify -evaluate Multiply 2.5-канальный Alpha $FILE; сделано
Работа выполнена! На самом деле это не совсем сработало для отключенных кнопок по какой-то причине - я думаю, потому что центр суперпрозрачный, но мне все равно. Для этих изображений вам нужно будет использовать более высокое значение, чем 2,5, если вы хотите, чтобы они были полностью непрозрачными.
В результате результат здесь.