全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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  # Canvas的使用  # Canvas中View.onDraw使用方法  # Android 重写ViewGroup 分析onMeasure()和onLayout()方法  # Android View.onMeasure方法详解及实例  # Android ListView 和ScroolView 出现onmeasure空指针的解决办法  # Android 通过onDraw实现在View中绘图操作的示例  # Android onMeasure与onDraw及自定义属性使用示例  # 自定义  # 自己的  # 就会  # 如有  # 两种  # 我们可以  # 希望能  # 可以使用  # 谢谢大家  # 如下图  # 宋体  # 上画  # 疑问请  # layout_width 


相关文章: 桂林网站制作公司有哪些,桂林马拉松怎么报名?  常州自助建站工具推荐:低成本搭建与模板选择技巧  深圳网站制作的公司有哪些,dido官方网站?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  浅析上传头像示例及其注意事项  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  常州自助建站费用包含哪些项目?  建站主机是什么?如何选择适合的建站主机?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何快速查询网站的真实建站时间?  建站DNS解析失败?如何正确配置域名服务器?  如何通过虚拟主机快速搭建个人网站?  如何获取上海专业网站定制建站电话?  ,交易猫的商品怎么发布到网站上去?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  微信小程序 input输入框控件详解及实例(多种示例)  如何使用Golang table-driven基准测试_多组数据测量函数效率  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  黑客如何通过漏洞一步步攻陷网站服务器?  如何快速建站并高效导出源代码?  如何通过西部数码建站助手快速创建专业网站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  学校为何禁止电信移动建设网站?  山东网站制作公司有哪些,山东大源集团官网?  西安专业网站制作公司有哪些,陕西省建行官方网站?  家具网站制作软件,家具厂怎么跑业务?  做企业网站制作流程,企业网站制作基本流程有哪些?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何通过二级域名建站提升品牌影响力?  图册素材网站设计制作软件,图册的导出方式有几种?  XML的“混合内容”是什么 怎么用DTD或XSD定义  ,在苏州找工作,上哪个网站比较好?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何在服务器上三步完成建站并提升流量?  制作证书网站有哪些,全国城建培训中心证书查询官网?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何快速搭建高效WAP手机网站?  如何选择CMS系统实现快速建站与SEO优化?  如何解决VPS建站LNMP环境配置常见问题?  高性价比服务器租赁——企业级配置与24小时运维服务  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Python文件管理规范_工程实践说明【指导】  开源网站制作软件,开源网站什么意思?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站主机选虚拟主机还是云服务器更好?  如何在云服务器上快速搭建个人网站?  建站之星logo尺寸如何设置最合适? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。