Почему изменение Цвета Кнопки По умолчанию заставляет его посмотреть ПРЯМОУГОЛЬНАЯ ФИГУРА? Я не хочу использовать пользовательские фоновые изображения для этого. Я хочу сделать это программно для немногих условий, на которых я изменяю цвета многих маленьких кнопок на экране. Кто-либо может дать решение?
P.S. ==> кажется, что нет никакого обходного решения путем чтения этого http://groups.google.com/group/android-beginners/browse_thread/thread/e1313e2c98e9c52b
или есть ли кто-либо?
Для изменения цвета :
Drawable d = findViewById(R.id.button_name).getBackground();
PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
d.setColorFilter(filter);
Для удаления цвета :
Drawable d = findViewById(R.id.button_name).getBackground();
findViewById(R.id.button_name).invalidateDrawable(d);
d.clearColorFilter();
Вы можете использовать следующий XML скрипт вместо Назначения цветов в качестве фона. Прежде всего, позвольте мне сказать вам, что представление кнопки по умолчанию является прямоугольником, поэтому, когда вы просто добавляете представление кнопки в макет, ему назначается стиль фона по умолчанию, и из-за этого вы можете видеть его с закругленными углами. Когда вы назначаете фон, стиль/тема по умолчанию будет отменен, и вы получите кнопку в исходном виде, поэтому здесь вы должны применить тему/тип в соответствии с вашими требованиями. Если вам нужно несколько кнопок, вы можете использовать следующий XML-схему. Вы просто создаете .xml файл в вашем drawable в разделе ресурсов в проекте android. затем назначаете этот .XML файл в качестве фона вашего представления кнопки. И посмотрите, что произойдет...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="6dp"/>
<padding android:left="3dp" android:top="2dp"
android:right="3dp" android:bottom="2dp" />
</shape>