当前位置: 移动技术网 > IT编程>移动开发>Android > Android 中View.onDraw(Canvas canvas)的使用方法

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

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); 
    } 
  } 
} 

 运行效果如下图:

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网