Android 中View.onDraw(Canvas canvas)的使用方法
Android 中View.onDraw(Canvas canvas)的使用方法
View通過(guò)View.onDraw(Canvas canvas)來(lái)Draw.
我們可以定義自己的繼承于View的TestView,然后重載View.onDraw(Canvas canvas).
對(duì)于自定義的TestView如何與Activity關(guān)聯(lián)?有以下兩種方式:
- 直接在setContentView(View view)里面加進(jìn)去自定義的View:setContentView(new TestView(this)).
- 另外,可以在layout文件里面可以使用自定義的View(如何自定義的View為內(nèi)部類,就會(huì)失效),
如:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <com.android.test.TestView android:id="@+id/testview" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </FrameLayout>
以下為使用onDraw(Canvas canvas)畫矩形區(qū)域,及在其上畫文本的實(shí)例(通過(guò)使用內(nèi)部類使程序顯得更加簡(jiǎn)潔,緊湊):
package com.android.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Typeface; import android.os.Bundle; import android.view.View; public class TestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new TestView(this)); } public class TestView extends View { private Paint mPaint = new Paint(); public TestView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); String text = "Android - 機(jī)器人"; mPaint.setColor(Color.WHITE); Paint paint = new Paint(); paint.setColor(Color.RED); String familyName = "宋體"; Typeface font = Typeface.create(familyName,Typeface.BOLD); paint.setTypeface(font); paint.setTextSize(22); canvas.drawRect(new Rect(0, 0, 320, 240), mPaint); canvas.drawText(text, 0, 100, paint); } } }
運(yùn)行效果如下圖:
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android實(shí)現(xiàn)騰訊新聞的新聞?lì)悇e導(dǎo)航效果
這篇文章主要介紹了Android實(shí)現(xiàn)騰訊新聞的新聞?lì)悇e導(dǎo)航效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Android?14新功能HighLights快速實(shí)現(xiàn)文本高亮
這篇文章主要為大家介紹了Android?14新功能HighLights快速實(shí)現(xiàn)文本高亮示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03分析Android App中內(nèi)置換膚功能的實(shí)現(xiàn)方式
這篇文章主要介紹了Android App中內(nèi)置換膚功能的實(shí)現(xiàn)方式,文中舉了一個(gè)類似QQ空間中換膚方式的例子作為說(shuō)明,需要的朋友可以參考下2016-02-02android實(shí)現(xiàn)簡(jiǎn)單的矩形裁剪框
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)簡(jiǎn)單的矩形裁剪框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android圓形頭像拍照后“無(wú)法加載此圖片”的問(wèn)題解決方法(適配Android7.0)
這篇文章主要介紹了Android圓形頭像拍照后“無(wú)法加載此圖片”的問(wèn)題解決方法(適配Android7.0) ,需要的朋友可以參考下2017-10-10Android編程設(shè)計(jì)模式之狀態(tài)模式詳解
這篇文章主要介紹了Android編程設(shè)計(jì)模式之狀態(tài)模式,結(jié)合實(shí)例形式詳細(xì)分析了Android狀態(tài)模式的概念、功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-12-12Android應(yīng)用退出登錄的實(shí)現(xiàn)方法
每一個(gè)app都會(huì)有一個(gè)”退出登陸”的功能,當(dāng)點(diǎn)擊退出之后需要將所有的Activity都finish掉,開始是想將棧中的所有Activity清除掉,但是沒(méi)有找到方法,后來(lái)用廣播實(shí)現(xiàn)了。下面小編給大家分享android應(yīng)用退出登錄的實(shí)現(xiàn)方法,需要的朋友參考下2017-04-04