Android TextView 要使用漸層效果,但莫名有一層透明度罩上

Android TextView 要使用漸層效果,但莫名有一層透明度罩上

 找了很久,原來是因為textView預設沒有設置一個非透明度的預設顏色,







原本程式碼如下: 


Xml 原本設定

<TextView
android:id="@+id/tv_login_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
android:maxLines="1"
android:text="@string/login_or_add_member"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></TextView>


設定漸層色

try {
float tvWidth =
textView.getPaint().measureText(textView.getText().toString());
float tvHeight =
textView.getPaint().getTextSize();
LinearGradient linearGradient = new LinearGradient(0, 0, tvWidth, tvHeight, startColor,
endColor
, LinearGradient.TileMode.CLAMP);
textView.getPaint().setShader(linearGradient);
textView.invalidate();
} catch (Exception e) {
Log.d(TAG, "setTextGradient error: " + Log.getStackTraceString(e));
}

原本效果如下圖:









XML加上android:textColor="@color/black"

<TextView
android:id="@+id/tv_login_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
android:maxLines="1"
android:text="@string/login_or_add_member"
android:textSize="16dp"
android:textStyle="bold"
android:textColor="@color/black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></TextView>


效果如下圖:







搞定!


張貼留言

0 留言