`
wangleyiang
  • 浏览: 221618 次
社区版块
存档分类
最新评论

在自定义的View中绘制内容

阅读更多

程序开发中,常常需要完成某一个特殊效果而绘制一些内容。

下面简单说明如何在View中绘制简单内容并显示出来。

在自定义的View中绘制内容,主要是在onDraw方法中添加绘图操作。如果Paint可以共享,不妨把它放到类变量里面去,具体参考如下:

public class MyView extends View {

	private Paint mPaint;
	
	private void initial() {
		mPaint = new Paint();  
		mPaint.setAntiAlias(true);
        this.setKeepScreenOn(true);
        mPaint.setColor(Color.RED);  
	}
	
	public MyView(Context context) {
		super(context);
		initial();
	}
	
	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		initial();
	}
	
	@Override
	protected void onDraw(Canvas canvas) {	
		super.onDraw(canvas);
		
		canvas.drawColor(Color.WHITE);
		canvas.drawText("绘制文字", 10, 20, mPaint);
		canvas.drawCircle(35, 50, 20, mPaint);
			
	}

}

说明:

  1. 抗锯齿设置:mPaint.setAntiAlias(true);
  2. 设置画笔颜色:mPaint.setColor(Color.RED);
  3. 绘制背景颜色:canvas.drawColor(Color.WHITE);
  4. 绘制文字:canvas.drawText("绘制文字", 10, 20, mPaint);
  5. 绘制圆:canvas.drawCircle(35, 50, 20, mPaint);

开发文档对参数的讲解比较详细,在此不赘述!

 

下面看看如何显示到界面上,分别从代码和XML文件两个方面简单说明。

1、代码引用

 

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		
		setContentView(new MyView(this));
		
	}

}
 为了更好的看到坐标的相对关系,这里通过代码设置了全屏和无标题栏(也可以从Manifest文件中设置):

 

  1. 全屏:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  2. 无标题栏:requestWindowFeature(Window.FEATURE_NO_TITLE);

2、XML文件引用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.test.MyView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

  说明:

  1. 注意MyView中构造函数的声明,从XML文件指定的View,需要实现含有AttributeSet参数的构造函数,否则会提示错误;

效果如图:



希望对你有所帮助!:)

  • 大小: 2.4 KB
分享到:
评论

相关推荐

    自定义view 画笔绘制

    以上代码示例展示了如何在自定义View中使用`Paint`进行图形绘制。通过调整`Paint`的属性,可以创建出各种复杂且富有创意的UI元素。 在Android开发中,自定义View和`Paint`类的掌握程度直接影响到应用的用户体验和...

    Android自定义View基本绘制流程及实例

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的交互体验。本篇文章将深入探讨Android自定义View的基本绘制流程,并通过实例进行详解。 首先...

    自定义滑动按钮为例图文剖析Android自定义View绘制

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面组件。本文将以自定义滑动按钮为例,深入解析Android自定义View的绘制过程。 首先,了解View和ViewGroup的关系至关重要。...

    Android 自定义View绘制居中文本

    在Android开发中,自定义View是一项常见的需求,它允许开发者根据特定的设计要求或者功能扩展来创建独特的用户界面组件。本文将深入探讨如何实现一个自定义的View,使其能够精确地绘制水平和垂直居中的文本,效果...

    android 自定义view比较综合的例子

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。这个“android 自定义view比较综合的例子”显然涵盖了多个高级话题,旨在帮助有一定基础的开发者提升自定义...

    Android中自定义View

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的交互体验。自定义View通常涉及到绘制、事件处理、动画以及性能优化等多个方面。下面我们将...

    Android自定义View之绘制圆形头像功能

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求定制UI组件。本文主要探讨了如何自定义一个可以绘制圆形头像的View,即`RoundImageView`。这个自定义View继承自标准的`ImageView`,目的是将...

    Android-自定义View绘制一个太极旋转图片demo

    综上所述,这个"Android-自定义View绘制一个太极旋转图片demo"涵盖了Android开发中的自定义视图绘制、动画效果以及资源管理等多个核心知识点。通过实践这个项目,开发者不仅可以提升Android图形绘制的能力,还能掌握...

    自定义View 绘制机器人

    在自定义View时,我们需要重写`onDraw()`方法,这是绘制所有内容的核心地带。在这个方法中,我们将调用`Canvas`的相关方法来完成机器人的绘制。 `Canvas`是绘制2D图形的画布,它提供了丰富的绘图操作,如画线、画圆...

    安卓自定义View绘制饼图

    综上所述,Android自定义View绘制饼图涉及多个关键步骤,包括数据处理、图形计算、Canvas操作以及交互设计。理解并掌握这些知识点,对于Android开发者来说,不仅可以提升应用的个性化程度,也有助于提升解决问题的...

    android 自定义View界面大合集

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的交互体验。"Android 自定义View界面大合集"的主题涵盖了这个领域的广泛知识点,包括但不限于...

    Android自定义View绘制几何图形

    接下来,我们需要重写`onDraw()`方法,这是自定义View绘制图形的核心。在`onDraw()`方法中,我们可以通过`Canvas`对象来绘制图形。`Canvas`提供了各种绘图操作,如画线、画圆、画矩形等。为了绘制矩形,我们可以使用...

    自定义开关View绘制流程

    * onMeasure() (在这个方法里指定自己的宽高) -&gt; onDraw() (绘制自己的内容) * * ViewGroup * onMeasure() (指定自己的宽高, 所有子View的宽高)-&gt; onLayout() (摆放所有子View) -&gt; onDraw() (绘制内容)

    安卓自定义View基础-绘制点、线、矩形、圆形等

    本文将深入探讨如何在Android中自定义View,并详细讲解如何绘制点、线、矩形和圆形。 首先,理解Android的View体系结构至关重要。View是Android UI系统的基础,它负责在屏幕上显示内容并处理用户交互。自定义View...

    自定义View进阶一

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。本篇文章将深入探讨自定义View的进阶知识,以帮助开发者更好地理解和运用这一技术。 首先,理解自定义View...

    Android自定义View实现转盘旋转的效果

    onDraw 函数是 View 的一个关键函数,在界面刷新时会被调用,可以在这个函数中实现自定义的绘制逻辑。 在本例中,我们将实现一个自定义的转盘 View,通过继承 View 类,并重写构造函数和 onDraw() 函数。我们将使用...

    Android 自定义View视图

    在Android应用开发中,自定义View视图是一个重要的技术,它允许开发者根据特定需求创建独一无二的用户界面元素。本文将深入探讨如何通过继承View类来实现一个自定义的罗盘界面,以帮助开发者理解自定义视图的工作...

    开发自定义View 源码

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的交互体验。标题“开发自定义View 源码”所指的,是针对如何设计和实现自定义Android View类的...

    Android 自定义View实现水平温度计

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本项目"Android 自定义View实现水平温度计"就是这样一个实例,它通过自定义View来展示一个水平方向的温度计,...

    android自定义View之NotePad出鞘记

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,提升应用的用户体验和个性化程度。本篇文章将深入探讨如何在Android中实现一个自定义的NotePad视图,即模拟一个笔记本...

Global site tag (gtag.js) - Google Analytics