android - Comment contrôler la couleur du trait d'une forme via le code?
習慣沉默
習慣沉默 2017-06-27 09:19:00
0
2
1020

1. Ceci est un fichier de style 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. Utilisez ce style dans 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. En ce qui concerne l'exigence, la couleur du trait doit maintenant être contrôlée dans le code, c'est-à-dire que la couleur du style peut être modifiée dynamiquement. La couleur n'existe pas dans
color.xml, et elle ne peut pas non plus être modifiée à l'aide d'un thème.

4.Demandez de l'aide...

習慣沉默
習慣沉默

répondre à tous(2)
巴扎黑

Obtenez un objet GradientDrawable via searchView.getBackground() (si la vue est définie sur un arrière-plan de forme).

Ensuite, définissez simplement le trait de manière dynamique via drawable.setStroke(1, Color.RED). Le premier paramètre 1 représente la largeur, et le second est la couleur.

大家讲道理
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));
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal