如何在android studio中编写这个xml代码?
Posted
技术标签:
【中文标题】如何在android studio中编写这个xml代码?【英文标题】:How to write this xml code in android studio? 【发布时间】:2020-01-22 03:55:07 【问题描述】:我对 android Studio 很陌生。作为初学者,我创建了一个简单的应用程序,其中包含“res/drawable”文件夹中的 custom_button.xml 文件。
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_
android:layout_
android:orientation="vertical"
tools:context=".MainActivity"
android:background="@color/colorWhite">
<Button
android:id="@+id/MyButton1"
android:layout_
android:layout_
android:text="@string/1"
android:background="@drawable/my_button"/>
<Button
android:id="@+id/MyButton2"
android:layout_
android:layout_
android:text="@string/2"
android:background="@drawable/my_button"/> <!-- How to change default color ? -->
</LinearLayout>
所以我的问题是如何使用 custom_button.xml 文件更改 MyButton2(按钮 ID)默认背景颜色。 我知道我可以再创建一个可绘制的 xml 文件来更改 MyButton2 颜色,但我想使用 custom_button.xml 文件来更改默认颜色。 请大家帮帮我!!!!!!
【问题讨论】:
【参考方案1】:你可以试试这个代码
android:backgroundTint="@color/colorPrimary"
在您要更改的按钮中
【讨论】:
【参考方案2】:这将动态改变背景可绘制颜色。
这样设置背景颜色
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);
【讨论】:
【参考方案3】:试试这个。我以编程方式创建了形状。例如:
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);
【讨论】:
以上是关于如何在android studio中编写这个xml代码?的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 对 strings.xml 文件进行排序以匹配
如何在 Android Studio 中找到 Strings.xml 的用法?