Как сделать кнопку непрозрачной?

17

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

    
задан Suzan Cioc 17.05.2012 в 11:30
источник

6 ответов

6

Стандартная кнопка с тематическим голосом частично прозрачна. Вы можете создать новую кнопку 9.png для использования в кнопке или создать новую кнопку с помощью drawable.

Вот ссылка о том, как сделать последнее:

Ссылка

    
ответ дан Tony 17.05.2012 в 11:38
источник
  • Каков самый простой способ? Не могу ли я просто нарисовать кнопку как непрозрачную? –  Suzan Cioc 17.05.2012 в 11:41
  • Второй вариант довольно прямолинейный. Вы можете просто изменить фон кнопки на сплошной цвет (т. Е. # 999999), но это будет выглядеть не очень хорошо и не даст нажатой кнопке состояния, вызывающего плохой пользовательский интерфейс. –  Tony 17.05.2012 в 12:03
31

Установите фон @android:drawable/btn_default , чтобы избавиться от прозрачности голой темы

    
ответ дан tlrmcknz 18.10.2012 в 06:57
источник
  • Это также изменяет графику на устройство по умолчанию (т. е. не голодно). –  Timmmm 02.11.2012 в 13:47
  • Идеальный ответ. Благодарю. –  Igor Ganapolsky 23.08.2013 в 21:44
  • Это идеальный ответ! Вы знаете, как применить его к другим элементам управления? (особенно в EditText) –  Bronek 17.12.2013 в 18:42
  • Хорошо, я нашел ответ на свой вопрос сам, это: @android: drawable / edit_text –  Bronek 17.12.2013 в 18:55
3

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

    
ответ дан Thiru VT 17.05.2012 в 11:36
источник
1

сохраните ниже код как 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>>"
    
ответ дан Bhaskar Reddy 17.05.2012 в 11:57
источник
1

Я был с той же проблемой, но с 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>
    
ответ дан Bernardo Rufino 05.07.2013 в 08:23
источник
0

Голосовая прозрачность фактически встроена в файлы PNG. Таким образом, единственный реальный способ изменить это - отредактировать PNG и сделать их непрозрачными. На самом деле это не так просто. Вам нужно умножить альфа-канал изображения на 255/102. Это непросто!

Но поскольку я такой гений, я нашел способ сделать это. В основном я скопировал все соответствующие PNG и XML в свою собственную структуру каталогов (только кнопки -mdpi , -hdpi и -xhdpi ). Затем я запустил это:

для FILE в find . -name *.png ; make mogrify -evaluate Multiply 2.5-канальный Alpha $ FILE; сделано

Работа выполнена! На самом деле это не совсем сработало для отключенных кнопок по какой-то причине - я думаю, потому что центр суперпрозрачный, но мне все равно. Для этих изображений вам нужно будет использовать более высокое значение, чем 2,5, если вы хотите, чтобы они были полностью непрозрачными.

В результате результат здесь .

    
ответ дан Timmmm 02.11.2012 в 14:17
источник
  • Это отлично, но когда вы говорите «Тогда я побежал это ...», откуда вы запускаете этот код? –  Floris 25.02.2014 в 11:33