Почему изменение цвета кнопки по умолчанию заставляет ее выглядеть прямоугольной в Android? - PullRequest
5 голосов
/ 05 мая 2010

Почему при изменении цвета кнопки по умолчанию она выглядит как прямоугольник? Я не хочу использовать собственные фоновые изображения для этого. Я хочу сделать это программно для нескольких условий, при которых я меняю цвета многих маленьких кнопок на экране. Кто-нибудь может дать решение?

P.S. ==> Кажется, что нет обходного пути, читая это http://groups.google.com/group/android-beginners/browse_thread/thread/e1313e2c98e9c52b

или есть ли?

Ответы [ 2 ]

8 голосов
/ 05 мая 2010

Для изменения цвета:

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();
1 голос
/ 05 мая 2010

Вы можете использовать следующий скрипт XML вместо назначения цветов в качестве фона. Прежде всего, позвольте мне сказать вам, что представление Button по умолчанию является прямоугольником, поэтому, когда вы просто добавляете представление Button в свой макет, ему назначается стиль фона по умолчанию, и поэтому вы можете видеть его с закругленными углами. когда вы назначаете фон, стиль / тема по умолчанию будут переопределены, и вы получите кнопку в исходной форме, поэтому здесь вы должны применить тему / стиль согласно вашему требованию. Если вы хотите использовать несколько кнопок, вы можете использовать следующий XML-код. Вы просто создаете .xml файл в вашем рисованном виде под ресурсами в проекте 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...