Android自定義TextView實現(xiàn)文字傾斜效果
前言
由于Android自帶的TextView控件沒有提供傾斜的(我暫時沒有找到),我們可以自定義控件來實現(xiàn),下面首先來看我們實現(xiàn)的效果圖。
TextView文字傾斜
其實實現(xiàn)很簡單,下面我們來看實現(xiàn)步驟:
1、新建一個類 LeanTextView繼承TextView
public class LeanTextView extends TextView { public int getmDegrees() { return mDegrees; } public void setmDegrees(int mDegrees) { this.mDegrees = mDegrees; invalidate(); } private int mDegrees; public LeanTextView(Context context) { super(context, null); } public LeanTextView(Context context, AttributeSet attrs) { super(context, attrs, android.R.attr.textViewStyle); this.setGravity(Gravity.CENTER); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LeanTextView); mDegrees = a.getDimensionPixelSize(R.styleable.LeanTextView_degree, 0); a.recycle(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); } @Override protected void onDraw(Canvas canvas) { canvas.save(); canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop()); canvas.rotate(mDegrees, this.getWidth() / 2f, this.getHeight() / 2f); super.onDraw(canvas); canvas.restore(); } }
2、在values文件中新建styleable.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="LeanTextView"> <attr name="degree" format="dimension" /> </declare-styleable> </resources>
3、頁面布局,引用自定義控件
<com.aikaifa.LeanTextView android:id="@+id/lean" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="愛開發(fā)" />
這里我們用TextView記錄傾斜的角度,用SeekBar動態(tài)改變角度
<com.aikaifa.LeanTextView android:id="@+id/lean" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="愛開發(fā)" /> <TextView android:id="@+id/degrees" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:gravity="center"/> <SeekBar android:id="@+id/sb_lean" android:layout_width="match_parent" android:layout_marginTop="20dp" android:layout_height="wrap_content" android:max="100" android:progress="30" />
java代碼
mText= (LeanTextView) findViewById (R.id.lean); degrees= (TextView) findViewById (R.id.degrees); SeekBar sbLean = (SeekBar) findViewById(R.id.sb_lean); sbLean.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { mText.setmDegrees(progress); degrees.setText("傾斜度:"+progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } });
這樣關(guān)于TextView 文字傾斜的自定義控件就算基本完成了,是不是很簡單。
項目結(jié)構(gòu)圖:
TextView文字傾斜項目結(jié)構(gòu)圖
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對各位Android開發(fā)者們能有所幫助,如果有疑問大家可以留言交流。
- android開發(fā)教程之textview內(nèi)容超出屏幕寬度顯示省略號
- Android設(shè)置TextView顯示指定個數(shù)字符,超過部分顯示...(省略號)的方法
- Android中Textview和圖片同行顯示(文字超出用省略號,圖片自動靠右邊)
- Android設(shè)置當(dāng)TextView中的文字超過TextView的容量時用省略號代替
- 解析在Android中為TextView增加自定義HTML標(biāo)簽的實現(xiàn)方法
- Android TextView顯示Html類解析的網(wǎng)頁和圖片及自定義標(biāo)簽用法示例
- Android自定義View之繼承TextView繪制背景
- Android TextView自定義數(shù)字滾動動畫
- Android 自定義TextView實現(xiàn)文本內(nèi)容自動調(diào)整字體大小
- Android自定義豎排TextView實現(xiàn)實例
- Android自定義textview實現(xiàn)豎直滾動跑馬燈效果
- Android開發(fā)自定義TextView省略號樣式的方法
相關(guān)文章
ViewPager和SlidingPaneLayout的滑動事件沖突解決方法
下面小編就為大家分享一篇ViewPager和SlidingPaneLayout的滑動事件沖突解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01Afianl框架里面的FinalBitmap加載網(wǎng)絡(luò)圖片
這篇文章主要介紹了Afianl框架里面的FinalBitmap加載網(wǎng)絡(luò)圖片的相關(guān)資料,需要的朋友可以參考下2015-07-07android檢測網(wǎng)絡(luò)連接狀態(tài)示例講解
網(wǎng)絡(luò)的時候,并不是每次都能連接到網(wǎng)絡(luò),因此在程序啟動中需要對網(wǎng)絡(luò)的狀態(tài)進(jìn)行判斷,如果沒有網(wǎng)絡(luò)則提醒用戶進(jìn)行設(shè)置2014-02-02Android Studio 1.2版安裝設(shè)置圖文教程
這篇文章主要介紹了Android Studio 1.2版安裝設(shè)置圖文教程,本文詳細(xì)講解了下載、安裝Android Studio 1.2教程,以及常用設(shè)置詳細(xì)圖文教程,需要的朋友可以參考下2015-05-05詳解Android應(yīng)用中preference首選項的編寫方法
這篇文章主要介紹了Android應(yīng)用中preference首選項的編寫方法,或許Apple將其翻譯為'偏好設(shè)置'更直觀些,即用戶對應(yīng)用的一些個性化調(diào)整菜單,需要的朋友可以參考下2016-04-04