全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何彻底卸载建站之星软件?  如何高效搭建专业期货交易平台网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  ,柠檬视频怎样兑换vip?  如何用已有域名快速搭建网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  html制作网站的步骤有哪些,iapp如何添加网页?  如何彻底删除建站之星生成的Banner?  如何通过服务器快速搭建网站?完整步骤解析  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  婚礼视频制作网站,学习*后期制作的网站有哪些?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何通过免费商城建站系统源码自定义网站主题与功能?  ,sp开头的版面叫什么?  Python路径拼接规范_跨平台处理说明【指导】  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  h5在线制作网站电脑版下载,h5网页制作软件?  如何基于云服务器快速搭建网站及云盘系统?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  代购小票制作网站有哪些,购物小票的简要说明?  建站之星如何通过成品分离优化网站效率?  建站之星安装路径如何正确选择及配置?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何在Golang中使用replace替换模块_指定本地或远程路径  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  太原网站制作公司有哪些,网约车营运证查询官网?  如何快速搭建高效香港服务器网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何配置支付宝与微信支付功能?  移民网站制作流程,怎么看加拿大移民官网?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何选择网络建站服务器?高效建站必看指南  定制建站价位费用解析与套餐推荐全攻略  宝塔Windows建站如何避免显示默认IIS页面?  宝塔新建站点报错如何解决?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  如何选购建站域名与空间?自助平台全解析  已有域名能否直接搭建网站?  建站之星伪静态规则如何设置?  如何零基础在云服务器搭建WordPress站点?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何用VPS主机快速搭建个人网站? 

您的项目需求

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