Rumah > Soal Jawab > teks badan
1. Ini ialah fail gaya xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 角度 -->
<corners android:radius="2dp"/>
<!-- 填充色 -->
<solid android:color="#ffffff"/>
<!-- 描边 设置线宽及颜色 -->
<stroke android:color="@color/colorAccent"
android:width="1dp"/>
</shape>
2 Gunakan gaya ini dalam searchView
<android.support.v7.widget.SearchView
android:id="@+id/searchView_singer"
android:layout_width="match_parent"
android:layout_height="46dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/searviewtest"
/>
3 Untuk keperluan, kini warna stroke perlu dikawal dalam kod iaitu warna gaya boleh ditukar secara dinamik Warna tidak wujud dalam
color.xml, dan tidak boleh ditukar menggunakan tema
4.Minta tolong...
巴扎黑2017-06-27 09:21:00
Dapatkan objek GradientDrawable melalui searchView.getBackground()
(jika Paparan ditetapkan kepada latar belakang Bentuk).
Kemudian hanya tetapkan strok secara dinamik melalui drawable.setStroke(1, Color.RED)
. Parameter pertama 1 mewakili lebar, dan yang kedua ialah warna.
大家讲道理2017-06-27 09:21:00
Drawable background = imageView.getBackground();
if (background instanceof ShapeDrawable) {
((ShapeDrawable)background).getPaint().setColor(ContextCompat.getColor(mContext,R.color.colorToSet));
} else if (background instanceof GradientDrawable) {
((GradientDrawable)background).setColor(ContextCompat.getColor(mContext,R.color.colorToSet));
} else if (background instanceof ColorDrawable) {
((ColorDrawable)background).setColor(ContextCompat.getColor(mContext,R.color.colorToSet));
}