当前位置: 首页 > 编程笔记 >

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

司空默
2023-03-14
本文向大家介绍Android 中View.onDraw(Canvas canvas)的使用方法,包括了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中html.fromhtml的使用方法,包括了Android中html.fromhtml的使用方法的使用技巧和注意事项,需要的朋友参考一下 Android中html.fromhtml   在android中,有一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本 框中的字符串进行HTML格式化,支持的还是很多的, 但要注意的是要在string.xml中用<

  • 本文向大家介绍Android中Blade的使用方法,包括了Android中Blade的使用方法的使用技巧和注意事项,需要的朋友参考一下 启动Activity并传递参数 Extra 正常情况下启动Activity并且传递参数的代码: 使用Blade启动Activity的方式 通过上面的代码就会自动生成一个如下两个方法 然后我们就可以直接通过 I.startLoginActivity 来启动Activ

  • 本文向大家介绍Android 中Context的使用方法详解,包括了Android 中Context的使用方法详解的使用技巧和注意事项,需要的朋友参考一下 Android 中Context的使用方法详解 概要: Context字面意思是上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄。很多方法

  • 本文向大家介绍Android中通知Notification的使用方法,包括了Android中通知Notification的使用方法的使用技巧和注意事项,需要的朋友参考一下 每个使用Android手机的人应该对Android中的通知不陌生,下面我们就学习一下怎么使用Android中的通知。 一、通知的基本用法 活动、广播接收器和服务中都可以创建通知,由于我们一般在程序进入后台后才使用通知,所以真实场

  • 本文向大家介绍Android中使用AndroidTestCase的方法实例,包括了Android中使用AndroidTestCase的方法实例的使用技巧和注意事项,需要的朋友参考一下 Android 使用 AndroidTestCase 的步骤 1.新建一个类继承 AndroidTestCase 2.修改 AndroidManifest.xml 文件 在application 内部添加 appli

  • 本文向大家介绍详解Android中Notification的使用方法,包括了详解Android中Notification的使用方法的使用技巧和注意事项,需要的朋友参考一下       在消息通知的时候,我们经常用到两个控件Notification和Toast。特别是重要的和需要长时间显示的信息,用Notification最合适不过了。他可以在顶部显示一个图标以标示有了新的通知,当我们拉下通知栏的时

  • 本文向大家介绍详解Android中AsyncTask的使用方法,包括了详解Android中AsyncTask的使用方法的使用技巧和注意事项,需要的朋友参考一下 在Android中实现异步任务机制有两种方式,Handler和AsyncTask。 Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,

  • 问题内容: 我正在尝试调用我编写的方法。它只编译一行… 我不是最好的Java专家,但我认为像这样调用该方法将得到响应。不显示“ Hello”,但是… 如何正确调用该方法? 问题答案: 编辑:毫无疑问,这个答案仅解决了为什么您遇到编译时错误。它 没有 解决您在Android中的哪个线程以及什么时间应该做什么。 我个人建议您暂时放下Android,在更简单的环境(例如控制台应用程序)中学习Java,然