Как написать этот XML-код в Android Studio? - PullRequest
0 голосов
/ 21 сентября 2019

Я очень новичок в Android Studio.Как новичок я создал простое приложение, содержащее файл custom_button.xml в папке res / drawable.

код custom_button.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="oval">
<solid android:color="@color/colorDarkGrey"/> <!-- default color -->
</shape>
</item>
</selector>

и файл activity_main.xml имеют две настраиваемые кнопки

код Activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity"
android:background="@color/colorWhite">

<Button
        android:id="@+id/MyButton1"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="@string/1"
        android:background="@drawable/my_button"/>
<Button
        android:id="@+id/MyButton2"
        android:layout_width="102dp"
        android:layout_height="102dp"
        android:text="@string/2"
        android:background="@drawable/my_button"/>  <!-- How to change default color ? -->

</LinearLayout>

Итак, моя проблема в том, как мне изменить цвет фона MyButton2 (идентификатор кнопки) по умолчанию с помощью файла custom_button.xml.Я знаю, что могу создать еще один нарисованный xml-файл, чтобы изменить цвет MyButton2, но я хочу использовать файл custom_button.xml, чтобы изменить цвет по умолчанию.Пожалуйста, помогите мне, ребята !!!!!!

Ответы [ 3 ]

1 голос
/ 22 сентября 2019

Вы можете попробовать этот код

     android:backgroundTint="@color/colorPrimary"

в кнопке, которую вы хотите изменить

0 голосов
/ 22 сентября 2019

попробуйте это.Я создал форму программно.например:

 GradientDrawable shape = new GradientDrawable();
        shape.setShape(GradientDrawable.RECTANGLE);
        shape.setColor(android.graphics.Color.parseColor("#eeeeee"));
        shape.setStroke(4, android.graphics.Color.parseColor("#111111"));
        shape.setCornerRadius(50);
        btnCac.setBackground(shape);
0 голосов
/ 21 сентября 2019

Это будет динамически менять цвет фона для рисования.

установить цвет фона следующим образом

setBackground(MyButton1,Color.BLUE); // you can set any color here
setBackground(MyButton2,Color.GREEN);

private void setBackground(View view,int color) {
    Drawable defaultDrawable = AppCompatResources.getDrawable(YourActivity.this, R.drawable.custom_button);
    Drawable wrapDrawable = DrawableCompat.wrap(defaultDrawable);
    DrawableCompat.setTint(wrapDrawable,color);
    view.setBackground(wrapDrawable);
}
...