Android - 如何在带有 ✔ 的按钮上设置文本颜色作为 Android M 上的文本

Android - How to set Text Color on a button with ✔ as text on Android M

在 Android 月

button.setText("✔");
button.setTextColor(Color.WHITE);

不知道为什么不起作用?

如何获得 ✔ 白色?

其实你可以添加drawable来查看。就像 xml 中的那样:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Load More"
    android:id="@+id/loadMore"
    android:drawableLeft="@drawable/your_marked_icon"
    android:drawableRight="@drawable/another_icon_if_need"
    style="?android:attr/borderlessButtonStyle"
    android:layout_centerHorizontal="true" />

您也可以在您的代码中这样做:

Drawable top = getResources().getDrawable(R.drawable.image);
//placement is like that : left, top, right, bottom
button.setCompoundDrawablesWithIntrinsicBounds(null, top , null, null);

我采用了这个解决方案:How to set property “android:drawableTop” of a button at runtime

您也可以像这样更改可绘制对象的色调值:

public static Drawable setTint(Drawable d, int color) {
    Drawable wrappedDrawable = DrawableCompat.wrap(d);
    DrawableCompat.setTint(wrappedDrawable, color);
    return wrappedDrawable;
}

此解决方案基于:change color of drawable

尝试这样做,

在您的 xml 文件中,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/coordinator"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@mipmap/ic_launcher"
        android:hint="hii" />
</LinearLayout >

现在,在您的 java 文件中添加此代码,例如

public class SixthActivity extends AppCompatActivity {

    Button btn;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_activity);
        btn = (Button) findViewById(R.id.btn);

        btn.setText("");
        btn.setBackgroundColor(getResources().getColor(R.color.white));
        btn.setBackgroundResource(R.mipmap.ic_launcher);
    }
}

您也可以将 unicode 用于刻度线,尝试将 &#x2713; 与字符串一起使用并将其设置为您的文本视图。