欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 中View.onDraw(Canvas canvas)的使用方法

程序员文章站 2023-12-18 23:44:16
android 中view.ondraw(canvas canvas)的使用方法 view通过view.ondraw(canvas canvas)来draw. 我们可以...

android 中view.ondraw(canvas canvas)的使用方法

view通过view.ondraw(canvas canvas)来draw.

我们可以定义自己的继承于view的testview,然后重载view.ondraw(canvas canvas).

对于自定义的testview如何与activity关联?有以下两种方式:

  1. 直接在setcontentview(view view)里面加进去自定义的view:setcontentview(new testview(this)).
  2. 另外,可以在layout文件里面可以使用自定义的view(如何自定义的view为内部类,就会失效),

如:

<?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)画矩形区域,及在其上画文本的实例(通过使用内部类使程序显得更加简洁,紧凑):

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 - 机器人";      
      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); 
    } 
  } 
} 

 运行效果如下图:

Android 中View.onDraw(Canvas canvas)的使用方法

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: