您好,登錄后才能下訂單哦!
思路:向四個方向移動一個像素繪制一個重疊效果,在繪制正常文本,底部的文本就相當于以陰影效果;
代碼如下:
import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; public class ShadowTextView extends TextView{ public ShadowTextView(Context context, AttributeSet attrs) { super(context, attrs); } protected void onDraw(Canvas canvas) { //先繪制一個邊框在調用父類的onDraw()方法,繪制正常文本 drawText(canvas); super.onDraw(canvas); } private void drawText(Canvas canvas) { //1.獲取畫筆對象,這里如果不用父類自己new的話要注意設置字體的大小,不然會使用默認大小會,字會很小 Paint paint = getPaint(); //2.獲取文本 String text = String.valueOf(getText()); //3.定位字體位置 //第一行左邊距 float startX = getLayout().getLineLeft(0); //第一行文字的底部邊距 float startY = getBaseline(); //分別向左,向上,向下,向右一個像素繪制文本形成重疊效果 paint.setColor(getResources().getColor(R.color.textShadowColor)); canvas.drawText(text, startX + 1, startY, paint); canvas.drawText(text, startX, startY - 1, paint); canvas.drawText(text, startX , startY + 1, paint); canvas.drawText(text, startX - 1, startY, paint); } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。