91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么實現一個傾斜角標樣式

發布時間:2021-07-27 18:14:48 來源:億速云 閱讀:139 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關Android中怎么實現一個傾斜角標樣式,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

實現思路

額畫圖太丑了,這里解釋一下:這里以左上角為例,我們可以把手機屏幕看成是一個直角坐標軸,我們要畫一個斜角標示,只需要在我們的距形框內畫一個正方形通過正方形的對角線(這里必須是正方形,這樣可以控制x,y等距離),這樣操控斜角標示長度只需要控制對角線長度通過path方法來繪制路徑,右邊同理,我們也不需要過多計算,只需要通過moveTo方法移動坐標原點。

而繪制字體呢以對角線中心為坐標原點像左右繪制通過canvas.rotate()設置字體傾斜于對角線平行。效果如下:

核心代碼

繪制背景色

case TAG_LEFT:        path.lineTo(0, mHeight);        path.lineTo(mWidth, 0);        break;      case TAG_Right:        path.lineTo(mWidth, 0);        path.lineTo(mWidth, mHeight);        break;      case TAG_LEFT_BOTTOM:        path.lineTo(mWidth, mHeight);        path.lineTo(0, mHeight);        break;      case TAG_RIGHT_BOTTOM:        path.moveTo(0, mHeight);//移動坐標原點位置        path.lineTo(mWidth, mHeight);        path.lineTo(mWidth, 0);        break;      case TAG_LEFT_BAR:        path.moveTo(mWidth, 0);        path.lineTo(0, mHeight);        path.lineTo(0, mHeight - mySlantedHeight);        path.lineTo(mWidth - mySlantedHeight, 0);        break;      case TAG_RIGHT_BAR:        path.lineTo(mWidth, mHeight);        path.lineTo(mWidth, mHeight - mySlantedHeight);        path.lineTo(mySlantedHeight, 0);        break;      case TAG_LEFT_BOTTOM_BAR:        path.lineTo(mWidth, mHeight);        path.lineTo(mWidth - mySlantedHeight, mHeight);        path.lineTo(0, mySlantedHeight);        break;      case TAG_RIGHT_BOTTOM_BAR:        path.moveTo(0, mHeight);        path.lineTo(mySlantedHeight, mHeight);        path.lineTo(mWidth, mySlantedHeight);        path.lineTo(mWidth, 0);        break;

通過計算繪制字體和角度

rect = new Rect(0, 0, w, h);        rectF = new RectF(rect);        rectF.right = mTextPaint.measureText(myText, 0, myText.length());        rectF.bottom = mTextPaint.descent() - mTextPaint.ascent();//Ascent: 字符頂部到baseLine的距離 Descent: 字符底部到baseLine的距離        rectF.left += (rect.width() - rectF.right) / 2.0f;        rectF.top += (rect.height() - rectF.bottom) / 2.0f;        xy[0] = rectF.left;        xy[1] = rectF.top - mTextPaint.ascent();        xy[2] = w / 2;        xy[3] = h / 2;        xy[4] = -ROTATE_ANGLE;        //設置字體canvas.rotate(angle, centerX, centerY);    canvas.drawText(myText, toX, toY + PADDING_TOP, mTextPaint);

使用方法

testView.setText("打折中")        .setMode(TAG_LEFT_BAR)        .setBackground(Color.parseColor("#ff6677"))        .setTextColor(Color.parseColor("#000000"))        .setSlantedHeight(50)        .setTextSize(29);        或直接在布局中        <com.example.mylibrary.mySlantedTextView          android:layout_width="80dp"          android:layout_height="80dp"          android:layout_alignParentTop="true"          android:layout_alignParentRight="true"          app:myBackgroundColor="#667fff"          app:mySlantedHeight="30dp"          app:myText="熱賣中"          app:myTextColor="#ffffff"          app:myTextSize="16sp"          app:tagModel="right_bar" />

常用API

myBackgroundColor斜角背景顏色mySlantedHeight斜角高度myText字體展示tagModel樣式模式共八種myTextSize字體大小myTextColor字體顏色

上述就是小編為大家分享的Android中怎么實現一個傾斜角標樣式了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁陵县| 嘉义县| 临安市| 东乡| 柯坪县| 康保县| 大化| 连山| 贵南县| 灌阳县| 敦化市| 海淀区| 汕尾市| 民和| 梅州市| 嘉荫县| 金塔县| 四子王旗| 阜新| 维西| 运城市| 梧州市| 视频| 潞城市| 赤峰市| 宁津县| 临湘市| 凭祥市| 沂水县| 临泉县| 江西省| 锡林郭勒盟| 平乡县| 阿坝| 天门市| 东至县| 榆林市| 昌乐县| 苏尼特右旗| 岫岩| 双城市|