編輯:關於Android編程
在我們開發app時,TextView一定是使用最多的控件了,android自帶的TextView的功能也十分強大,但還是有些小的地方不能滿足我們的需求,幾天要說的這個功能也是開發中很常見的,就是,在我們顯示一段超過屏幕寬度的 String時,TextView會自動換行,但系統默認的換行效果是頂起,而不是美工要求的居中。這時候,就需要我們對系統的TextView做一些改造,已使得換行後文字能夠居中顯示。
先看下效果圖:
這種布局在IOS上很容易就實現了,android還的自定義一個View.
思路:在看android.text包中的源碼時,發現幾個從來沒用到的類,包括:Layout,StaticLayout,DeynamicLayout等幾個類,百度後得知這幾個類的大概作用:
這三個Layout,就是用來對android的CharSequence及其子類進行布局的,為其傳入不同的Alignment,就按照不同的Alignment去處理。代碼很簡單,只要從寫TextView即可,代碼如下:
package com.example.materialdesigndemo; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.text.Layout.Alignment; import android.text.StaticLayout; import android.text.TextPaint; import android.util.AttributeSet; import android.widget.TextView; /********************************************************** * @文件名稱:CenterTextView.java * @文件作者:rzq * @創建時間:2015年7月2日 上午10:12:16 * @文件描述:換行居中顯示TextView * @修改歷史:2015年7月2日創建初始版本 **********************************************************/ public class CenterTextView extends TextView { private StaticLayout myStaticLayout; private TextPaint tp; public CenterTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); initView(); } private void initView() { tp = new TextPaint(Paint.ANTI_ALIAS_FLAG); tp.setTextSize(getTextSize()); tp.setColor(getCurrentTextColor()); myStaticLayout = new StaticLayout(getText(), tp, getWidth(), Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); } @Override protected void onDraw(Canvas canvas) { myStaticLayout.draw(canvas); } }使用:
代碼很簡單,基本只需要重寫onDraw()方法,讓StaticLayout的實例去重新處理一下即可。這樣處理後弊端就是,我們的CenterTextView只能顯示文字,無法再顯示drawableLeft等,如果需要,就需要在onDraw()方法中進行更復雜的處理。
怎樣才能寫出優秀的Android App,是每一個程序員追求的目標。那麼怎麼才能寫出一個優秀的App呢?相信很多初學者也會有這種迷茫。一句話來回答這個問題:細節很重要。今
之前在進行cocos2dx開發時,已經詳細介紹了如何將win32的c++代碼移植到Android平台,當再次回顧時,發現一些基礎的東西理解並不是很徹底,今
應用程序中可以查看應用程序的相關信息,其中有一個功能是清除緩存。如圖: 怎麼實現這些功能呢,從Android的setting源碼中可以得到相關信息。 實現如下:
前言:略!獲取源碼的原因千千萬~~~ 1.安裝GIT工具。GIT是林納斯·托瓦茲大神為了管理器Linux內核開發而創立的分布式版本控制軟件。下載地址:http: