精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從未如此驚艷!你好,SuperTextView

移動開發 Android
歡迎使用SuperTextView,這篇文檔將會向你展示如何使用這個控件來提高你構建項目的效率。

[[189231]]

【引自CoorChice的博客】簡介

歡迎使用SuperTextView,這篇文檔將會向你展示如何使用這個控件來提高你構建項目的效率。 

 

SuperTextView繼承自TextView,它能夠大量的減少布局的復雜程度,并且使得一些常見的效果變得十分容易實現且高效。同時,它內置了動畫驅動,你只需要合理編寫Adjuster,然后startAnim()就可以看到預期的動畫效果。它僅僅是一個控件,所以你可以不費吹灰之力的在你的項目中集成使用。

特點

  1. 你從此不必再為背景圖編寫和管理大量<shape>文件了。
  2. 重新優化的狀態圖功能使得你能夠精確的控制狀態圖的大小,以及在SuperTextView中的位置。
  3. 支持設置圓角,并且能夠精確的控制圓角位置。
  4. 能夠輕松的實現控件邊框效果。
  5. 支持文字描邊,這使得空心文字效果成為了可能。
  6. 內置動畫驅動,你只需配合Adjuster合理的使用即可。
  7. Adjuster的出現,使得你對控件的繪制過程具有了掌控權,良好的設計使得它能夠***的實現絕大部分你腦海中的效果。

使用指南

支持的屬性

SuperTextView十分方便的支持在xml中直接設置屬性,并且你能夠立即看到效果。就像你平時使用TextView一樣方便。

  1. <SuperTextView 
  2.     android:layout_width="50dp" 
  3.     android:layout_height="50dp" 
  4.  
  5.     //設置圓角。會同時作用于填充和邊框(如果邊框存在的話)。 
  6.     //如果要設置為圓形,只需要把該值設置為寬或長的1/2即可。  
  7.     app:corner="25dp"   
  8.     //設置左上角圓角 
  9.     app:left_top_corner="true" 
  10.     //設置右上角圓角 
  11.     app:right_top_corner="true" 
  12.     //設置左下角圓角 
  13.     app:left_bottom_corner="true" 
  14.     //設置右下角圓角 
  15.     app:right_bottom_corner="true" 
  16.     //設置填充顏色 
  17.     app:solid="@color/red"   
  18.     //設置邊框顏色 
  19.     app:stroke_color="@color/black"   
  20.     //設置邊框的寬度。 
  21.     app:stroke_width="2dp"  
  22.     //放置一個drawable在背景層上。默認居中顯示。 
  23.     //并且默認大小為SuperTextView的一半。 
  24.     app:state_drawable="@drawable/emoji"   
  25.     //設置drawable的顯示模式。可選值如下: 
  26.     // lefttopright、bottom、center(默認值)、 
  27.     //leftTop、rightTop、leftBottom、rightBottom、 
  28.     //fill(充滿整個SuperTextView,此時會使設置drawable的大小失效) 
  29.     app:state_drawable_mode="center"  
  30.     //設置drawable的height 
  31.     app:state_drawable_height="30dp" 
  32.     //設置drawable的width 
  33.     app:state_drawable_width="30dp" 
  34.     //設置drawble相對于基礎位置左邊的距離 
  35.     app:state_drawable_padding_left="10dp" 
  36.     //設置drawble相對于基礎位置上邊的距離 
  37.     app:state_drawable_padding_top="10dp" 
  38.     // boolean類型。是否顯示drawable。 
  39.     //如果你想要設置的drawable顯示出來,必須設置為true。 
  40.     //當不想讓它顯示時,再設置為false即可。 
  41.     app:isShowState="true"  
  42.     //是否開啟文字描邊功能。 
  43.     //注意,啟用這個模式之后通過setTextColor()設置的顏色將會被覆蓋。 
  44.     //你需要通過text_fill_color來設置文字的顏色。 
  45.     app:text_stroke="true"  
  46.     // 文字的描邊顏色。默認為Color.BLACK。 
  47.     app:text_stroke_color="@color/black" 
  48.     // 文字描邊的寬度。 
  49.     app:text_stroke_width="1dp" 
  50.     // 文字填充的顏色。默認為Color.BLACK。 
  51.     app:text_fill_color="@color/blue"  
  52.     // boolean類型。是否啟用Adjuster功能。 
  53.     //具體干什么,需要在Java中為SuperTextView實現一個Adjuster。 
  54.     //當你啟用這個功能而沒有實現自己的Adjuster時, 
  55.     //SuperTextView會啟用默認的Adjuster。它會按照一定的規則調整文字大小。 
  56.     app:autoAdjust="true"  
  57.     />  

以上這些屬性,均可以在Java中進行動態的設置。同時也能夠獲得它們的值。例如:

  1. mSuperTextView.setCorner(10); 
  2.  
  3. mSuperTextView.getCorner();  

圓形和邊框

 

 

為了實現上圖效果,通常你需要編寫和管理大量的<shape>文件。現在你只需要在xml或代碼中對SuperTextView直接進行設置即可。

不簡單的圓角

 

不同于簡單的圓角,SuperTextView支持精確的控制圓角的位置。一個、兩個、三個都沒問題。一切由你掌控。

神奇的文字描邊

 

文字描邊從未如此簡單!

高效的狀態圖

 

 

不同于原生的Drawable,SuperTextView對于Drawable提供了更多精細化的控制操作。你能夠輕松的指定Drawable大小以及位置,只需一個屬性就能搞定。

相信你一定深有感觸,想要實現上圖中的效果,往往需要嵌套多層布局(一般3層吧?)。而SuperTextView只需一個控件,并且十分簡單高效的就能實現。它能夠大量的減少你的App中的布局復雜程度,減少視圖樹的繪制時間。

炸裂的Adjuster

Adjuster被設計用來在SuperTextView的繪制過程中插入一些操作。這具有非常重要的意義。比如,默認實現的DefaultAdjuster能夠動態的調整文字的大小。當然,你可以用它來實現各種各樣的效果。

想要Adjuster生效,你必須調用SuperTextView.setAutoAdjust(true)來啟用Adjuster功能。當然,你可以所以方便的停止,通過調用SuperTextView.setAutoAdjust(false)。并且,你需要注意調用順序,因為一旦調用了SuperTextView.setAutoAdjust(true),而Adjuster沒有被設置的話,將會啟用默認的DefaultAdjuster(它能夠動態的調整文字大小),直到你設置了你自己的Adjuster

干預控件的繪制

實現一個Adjuster需要繼承SuperTextView.Adjuster,并且實現adjust(SuperTextView v, Canvas canvas)方法。Adjuster.adjust()會在每次繪制過程中被調用,這意味著你能夠不可思議的從外部干預控件的繪制過程。

  1. public class YourAdjuster extends SuperTextView.Adjuster { 
  2.  
  3.   @Override 
  4.   protected void adjust(SuperTextView v, Canvas canvas) { 
  5.     //do your business。 
  6.   } 
  7.  
  8.  

注意,如果開啟動畫,你必須十分謹慎的編寫adjuster()中的代碼。因為動畫會以60幀/每秒的速度進行繪制。這意味著,這個方法每秒會被調用60次!所以,千萬不要在這個方法中重復的創建對象,會卡爆的!原因是短時間的大量將會引起【內存抖動】,導致GC頻繁發生。相關知識你可以看看我的這兩篇文章:

響應觸摸事件

如果你重載Adjuster的onTouch(SuperTextView v, MotionEvent event)方法,你將能夠獲得SuperTextView的觸摸事件。這是重要的一點,如果你想持續的對SuperTextView的觸摸事件進行處理,你必須使onTouch()返回true。否則你只能接收到一個ACTION_DOWN事件,而不是一個事件流。

  1. public class YourAdjuster extends SuperTextView.Adjuster { 
  2.  
  3.   @Override 
  4.   protected void adjust(SuperTextView v, Canvas canvas) { 
  5.     //do your business。 
  6.   } 
  7.  
  8.   @Override 
  9.   public boolean onTouch(SuperTextView v, MotionEvent event) { 
  10.     //you can get the touch event. 
  11.     //If want to get a series of touch event, you must return true here. 
  12.   } 
  13.  
  14.  

如此驚艷的效果

得益于SuperTextView內置的動畫驅動,你能夠結合Adjuster來實現難以置信的動畫效果。一切只需要在你合理的編寫好Adjuster后,調用startAnim()和stopAnim()來啟動/停止動畫。 

 

如你所見,上面的效果就是通過Adjuster來實現的。并且這種拔插式的設計,使得你能夠隨時在同一個SuperTextView上使用新的Adjuster,你所有需要做的事情就是創建一個新的Adjuster,然后調用setAdjuster()。

之前@Alex_Cin希望看到Ripple漣漪效果,所以在RippleAdjuster.java中,我演示了如何使用Adjuster和動畫驅動配合實現上圖的Rippler漣漪效果。【RippleAdjuster.java鏈接:https://github.com/chenBingX/SuperTextView/blob/master/app/src/main/java/com/coorchice/supertextview/SuperTextView/Adjuster/RippleAdjuster.java】

看,你可以使用Adjuster實現自己的Ripple效果。

指定Adjuster的層級

Adjuster貼心的設計了控制作用層級的功能。你可以通過Adjuster.setOpportunity(Opportunity opportunity)來指定Adjuster的繪制層級。

在SuperTextView中,繪制層級被從下到上分為:背景層、Drawable層、文字層3個層級。通過Opportunity來指定你的Adjuster想要插入到那個層級間。

  1. public enum Opportunity { 
  2.       BEFORE_DRAWABLE, //背景層和Drawable層之間 
  3.       BEFORE_TEXT,     //Drawable層和文字層之間 
  4.       AT_LAST          //最上層 
  5.  

三種類型的Opportunity示意圖。

 

默認值是Opportunity.BEFORE_TEXT。即第二張圖的示例。

事實上,只要你愿意,SuperTextView就相當于一張畫布,你可以在上面任意的揮灑你的創意。它能夠讓你專注于創作,而不用去在意編寫那些無用麻煩的代碼。

如何開始使用

  • 如果你喜歡SuperTextView,希望能順手在Github點個star哦!
  • 抽出空余時間寫文章分享需要動力,還請各位看官動動小手點個贊,給我點鼓勵😄
  • 我一直在不定期的創作新的干貨,想要上車只需進到我的【個人主頁】點個關注就好了哦。發車嘍~

方法一

在你的build.gradle中加入:

  1. allprojects { 
  2.     repositories { 
  3.         ... 
  4.         maven { url 'https://jitpack.io' } 
  5.     } 
  6.  
  7. dependencies { 
  8.     compile 'com.github.chenBingX:SuperTextView:v1.0' 
  9.  

方法二

你可以Clone我的【Github倉庫https://github.com/chenBingX/SuperTextView】,然后在Library包下找到SuperTextView和attrs.xml,復制到你的項目中。

現在,你可以開始使用SuperTextView了。

點擊這里跳轉SuperTextView項目地址。https://github.com/chenBingX/SuperTextView

責任編輯:龐桂玉 來源: CoorChice的博客
相關推薦

2019-05-23 10:55:22

Istio灰度發布ServiceMesh

2022-08-12 12:19:13

Cluster檢索集群

2013-06-14 10:36:00

2009-08-26 20:12:41

BMCBSMITIL

2020-06-17 10:42:54

shellshell腳本Linux

2013-11-28 13:47:37

Android4.4ART模式

2013-10-25 13:35:02

云計算

2024-02-27 18:06:35

2021-10-18 13:31:28

Web應用交互式

2025-04-03 00:10:11

DockerAI模型

2021-02-06 17:49:49

人工智能智能醫療智慧安防

2020-03-03 15:40:51

開發技能代碼

2022-06-13 06:33:04

瀏覽器瀏覽器插件

2020-03-17 07:41:50

ApacheKafka系統

2021-11-09 13:59:47

物聯網安全設備

2025-08-28 06:15:00

2025-07-08 07:55:30

2021-09-13 22:26:16

編程語言CPython

2013-12-13 13:23:29

馬云阿里巴巴

2022-10-21 15:02:36

DeepFake技術
點贊
收藏

51CTO技術棧公眾號

99一区二区| 久热精品在线视频| 污污视频网站免费观看| 成人免费一区二区三区视频网站| 九九热在线视频观看这里只有精品| 欧美成人三级视频网站| 亚洲精品视频大全| 色综合视频一区二区三区44| 亚洲国产欧美一区二区三区丁香婷| 久久99精品久久久久久水蜜桃| 国产精品51麻豆cm传媒| 亚洲高清资源| 中文字幕在线看视频国产欧美在线看完整 | 日韩性生活视频| 久久精品无码一区二区三区毛片| 秋霞伦理一区| 亚洲卡通动漫在线| 欧美日韩国产三区| www.av在线.com| 日韩成人免费电影| 97国产精品免费视频| jizzjizzjizz国产| 伊人久久大香线蕉无限次| 欧美丰满高潮xxxx喷水动漫| 日韩精品免费播放| 天堂av中文在线| 国产精品精品国产色婷婷| 国产一区免费| 亚洲av永久纯肉无码精品动漫| 日韩精品免费视频人成| 97成人在线视频| 久久成人国产精品入口| 国产精品99在线观看| 亚洲视频欧美视频| 亚洲av片不卡无码久久| 精品欠久久久中文字幕加勒比| 欧美另类久久久品| 欧美一级特黄a| 最近高清中文在线字幕在线观看1| 樱桃视频在线观看一区| 最近看过的日韩成人| 成av人电影在线观看| 久久久久高清精品| 久久久久久久免费| 天天干天天草天天射| 国产不卡视频在线播放| 91国产在线播放| 国产精品无码天天爽视频| 久久精品噜噜噜成人av农村| 国产精品对白刺激| 国产精品久久久久久久久夜色| 国产精品入口| 欧美一级电影在线| 中文字幕在线观看视频网站| 99精品国产福利在线观看免费 | 日韩欧美精品一区二区三区| 蜜桃视频在线网站| 成人在线视频一区| 99国产在线观看| 精品国产无码一区二区| 国产激情视频一区二区三区欧美| 91亚洲国产精品| 国产丝袜视频在线观看| 国产福利91精品一区| 97久久人人超碰caoprom欧美| www.xxxx国产| av一二三不卡影片| 蜜桃传媒一区二区| jzzjzzjzz亚洲成熟少妇| 中文字幕不卡在线播放| 三级网在线观看| 在线不卡日本v二区707| 亚洲午夜久久久| 69堂免费视频| 欧美日韩尤物久久| 欧美浪妇xxxx高跟鞋交| 一区二区在线免费观看视频| 成人资源在线| 亚洲免费av片| 日韩一卡二卡在线观看| 欧美精品三区| 欧美一级在线播放| 中文字幕在线观看国产| 国产麻豆精品在线| 狠狠爱一区二区三区| 国产三级视频在线看| 日韩毛片一二三区| 人人妻人人澡人人爽欧美一区双 | 日本成熟性欧美| 最近中文字幕在线免费观看| 国产一区二区毛片| 国产综合18久久久久久| av在线之家电影网站| 亚洲女人****多毛耸耸8| 免费国产黄色网址| 国产精品黄色片| 欧美精品一区二区在线观看| 婷婷综合在线视频| 在线精品一区二区| 国产精品一区二区三区成人| 亚洲国产精品二区| 欧美激情综合五月色丁香小说| 四虎4hu永久免费入口| 一女被多男玩喷潮视频| 极品白浆推特女神在线观看| 亚洲欧美日韩成人高清在线一区| 无码 制服 丝袜 国产 另类| 99只有精品| 精品乱码亚洲一区二区不卡| av黄色在线免费观看| 欧美三区不卡| 国产精品久久久久久av福利软件| 亚洲国产成人在线观看| 日本一区二区三区在线观看| 97超碰人人澡| 成人日韩视频| 在线视频中文亚洲| 999这里只有精品| 国产尤物一区二区| 日韩欧美一区二区在线观看 | 亚洲黄色在线免费观看| 中文字幕欧美激情一区| 伊人成色综合网| 久久在线观看| 最新国产精品亚洲| 中国一级特黄毛片| 国产91精品精华液一区二区三区 | 欧美日韩一卡| 成人黄色影片在线| 国产高清自拍视频在线观看| 精品国产乱码久久久久久虫虫漫画| 91欧美一区二区三区| 精品一区电影| 日本不卡高字幕在线2019| 免费成人在线看| 亚洲综合一二三区| 天天做天天干天天操| 久久高清精品| 国产精品9999| 国内精品在线视频| 欧美性少妇18aaaa视频| 精品国产av色一区二区深夜久久| 国产精品jizz在线观看美国| 97人人干人人| 激情网站在线| 欧美精品一区二区蜜臀亚洲| 久久久久久免费观看| 国产精品亚洲一区二区三区在线| 伊人婷婷久久| 久久精品九色| 欧美猛交免费看| 男女污污的视频| av天堂一区二区三区| 中文字幕欧美激情一区| 国内自拍视频网| 清纯唯美亚洲综合一区| 国产精品直播网红| 尤物视频在线免费观看| 欧美日本一区二区| caoporn91| 国产成人精品1024| 日韩视频免费播放| 亚洲精品**不卡在线播he| 91精品国产乱码久久久久久蜜臀| 免费国产精品视频| 天天色天天操综合| 中文字幕日韩三级片| 亚洲欧美网站| 免费无码一区二区三区| 欧美色片在线观看| 爽爽爽爽爽爽爽成人免费观看| 亚洲一区二区三区高清视频| 国产精品福利一区二区三区| 在线一区二区不卡| 国产一区二区三区四区老人| 国产精品自拍首页| 涩涩av在线| 伊人久久久久久久久久久久久| 亚洲综合精品国产一区二区三区| 亚洲色图欧美偷拍| 国产精品一区二区无码对白| 亚洲欧美不卡| 最新国产精品久久| 噜噜噜狠狠夜夜躁精品仙踪林| 日本精品久久久久影院| 欧美性videos| 精品国产伦一区二区三区免费| 欧美精品韩国精品| 亚洲天堂久久久久久久| 欧产日产国产精品98| 丝袜诱惑制服诱惑色一区在线观看| 亚洲欧洲日夜超级视频| 天堂va欧美ⅴa亚洲va一国产| 国产91成人video| 久热国产在线| 日韩av影院在线观看| 一级成人免费视频| 欧美日韩性生活视频| 亚洲女人毛茸茸高潮| 成人教育av在线| 国产三级国产精品国产专区50| 韩国亚洲精品| 色一情一乱一伦一区二区三欧美| 伊色综合久久之综合久久| 日本欧美精品在线| 激情视频免费网站| 成人免费看黄| 欧美精品一区三区| 黄色片免费在线| 日韩欧美的一区二区| 天干夜夜爽爽日日日日| 一区二区欧美视频| 亚欧精品视频一区二区三区| 99免费精品视频| 在线观看日本www| 久久久久久穴| 免费观看国产精品视频| 亚洲精品国产首次亮相| 日韩jizzz| 欧美午夜寂寞| 成人资源视频网站免费| 国产综合色激情| 日韩av大片在线| heyzo高清中文字幕在线| 久久影院免费观看| h网站在线免费观看| 亚洲精品福利在线观看| 亚洲国产成人在线观看| 91精品福利在线一区二区三区| 亚洲乱码国产乱码精品| 天天综合网天天综合色 | ...xxx性欧美| 三年中国中文观看免费播放| 91麻豆免费看片| 88av在线播放| 成人毛片老司机大片| 国模大尺度视频| 国产一区中文字幕| 精品综合久久久久| 美女一区二区三区| 特级丰满少妇一级| 秋霞av亚洲一区二区三| 一本久道中文无码字幕av| 校园激情久久| 97国产精东麻豆人妻电影| 99成人在线| 日韩欧美精品在线观看视频| 亚洲精品人人| 黄色一级片播放| 国产日韩精品视频一区二区三区 | 日韩精品电影在线| 免费在线观看的av网站| 蜜桃视频一区| 成人性做爰aaa片免费看不忠| 日韩精品午夜视频| 午夜国产一区二区三区| 免费观看日韩av| 亚洲一级免费在线观看| 国产综合色产在线精品| 18深夜在线观看免费视频| 国产成人综合亚洲91猫咪| 亚洲精品乱码久久久久久9色| 国产经典三级在线| 一区二区久久久| 久久网中文字幕| 午夜在线成人av| 欧美一区二区三区四| 色一情一乱一乱一91av| 黄色大全在线观看| 欧美日韩高清在线| www.久久综合| 日韩国产在线看| 992tv免费直播在线观看| 久久精品国产久精国产一老狼| 国产激情在线| 午夜精品国产精品大乳美女| 欧美aa在线| 国产欧美在线观看| 午夜视频在线观看精品中文| 精品一区国产| 99re6这里只有精品| 狠狠噜天天噜日日噜| 免费精品视频| 一级淫片在线观看| 不卡欧美aaaaa| 一级黄色片网址| 一区二区三区产品免费精品久久75| 国产成人免费观看视频 | 国产亚洲女人久久久久毛片| 国产麻豆a毛片| 午夜免费久久看| 中文字幕在线播放日韩| 欧美精品一区二区三区久久久| 国产黄色片在线观看| 色综合色综合久久综合频道88| 超级碰碰久久| 91精品视频大全| 精品在线播放| 9色porny| 另类的小说在线视频另类成人小视频在线| 欧美丰满熟妇bbb久久久| 国产日产欧美一区二区三区 | 在线精品国产| 女人另类性混交zo| 东方欧美亚洲色图在线| 国产精品久久久久久久av| 亚洲成人免费观看| 一本色道久久综合无码人妻| 日韩精品中文字幕视频在线| 黄色在线视频网站| 国产精品91免费在线| 久久成人福利| 777久久精品一区二区三区无码 | 香蕉视频xxx| 国产欧美精品一区二区色综合 | 91精品网站| 色yeye免费人成网站在线观看| 91美女精品福利| 成熟人妻av无码专区| 精品久久久久久| 性欧美videos另类hd| 日韩在线视频线视频免费网站| 都市激情亚洲一区| 国产精品美女久久久久av福利| 国产精品久久占久久| 日本成人中文字幕在线| 97国产一区二区| 国产午夜福利一区二区| 日韩欧美一区二区免费| 麻豆影视国产在线观看| 国产精品入口夜色视频大尺度| 网曝91综合精品门事件在线| 青青草精品视频在线| 成人免费毛片a| 国产亚洲精品女人久久久久久| 91精品国产一区二区三区蜜臀| h网站视频在线观看| 国产精品福利网| 宅男在线一区| 久久久精品在线视频| 91网页版在线| 69成人免费视频| 日韩成人激情在线| 欧美久久天堂| 乱色588欧美| 狂野欧美一区| 夫妇交换中文字幕| 欧美午夜在线观看| h网站在线免费观看| 成人动漫网站在线观看| 一区二区三区四区电影| 欧美性受xxxx黒人xyx性爽| 亚洲日本在线视频观看| 国产视频一区二区三| 欧美成人在线免费视频| 日韩精品视频一区二区三区| 伊人再见免费在线观看高清版 | 精品久久中文字幕久久av| 欧美一级一区二区三区| 97久久久免费福利网址| 婷婷激情久久| 国产av人人夜夜澡人人爽| 亚洲国产成人私人影院tom| 亚洲午夜激情视频| 久久99亚洲热视| 久久1电影院| 国产精品无码专区av在线播放 | 欧美精品久久久久久久久46p| 欧美一区二区三区男人的天堂 | 奇米一区二区三区四区久久| 女厕嘘嘘一区二区在线播放 | 国产乱对白刺激视频不卡| 激情视频在线播放| 日韩二区三区在线| 先锋欧美三级| 一级黄色录像免费看| 成人av网址在线观看| 69视频免费在线观看| 中文字幕亚洲欧美在线| 精品视频在线播放一区二区三区 | 91精品国产91久久综合| 日本xxxx免费| 狠狠躁夜夜躁人人爽天天天天97 | 麻豆一区二区在线观看| 97青娱国产盛宴精品视频| 日韩欧美xxxx| 亚洲欧美色一区| 色视频在线观看免费| 国产精品视频免费在线观看| 欧美视频日韩| 手机看片福利视频| 日韩精品一区二区三区四区| 二吊插入一穴一区二区| 在线观看成人免费| 91丨porny丨户外露出| 一级黄色片免费| 性色av一区二区咪爱| 久久免费av| 亚洲成人日韩在线| 欧美一区三区四区|