`

Android图形绘制

阅读更多

        前面学习已知,Android大部分组件都是View的子类,而如果要进行图形的绘制操作,则我们可以用一个类去继承View类,之后覆写View类中指定方法。

View中绘图方法

 protected void onDraw(Canvas canvas)

 protected void onDrawScrollBars(Canvas canvas)

绘图4个核心操作类

android.graphics.Canvas类:操作绘图,绘图平台,提供了一个画板功能

android.graphics.Paint类:相当于画笔类

android.graphics.Bitmap:图片管理类,操作图片资源

android.graphics.Matrix: 矩阵类

现在我们先画几个简单图形,了解一下这几个类的用法。

定义MyView类:

public class MyView extends View{

	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}
    protected void onDraw(Canvas canvas){
    	canvas.drawColor(Color.WHITE);//设置背景颜色
    	Paint paint=new Paint();
    	paint.setColor(Color.YELLOW);//设置笔尖为黄色
    	canvas.drawCircle(30,50,25,paint);//画圆
    	paint.setColor(Color.BLACK);
    	canvas.drawRect(80,20,160,80, paint);//定义矩形
    	Rect rect=new Rect();//定义矩形
    	rect.set(180, 20, 200, 80);//设置矩形大小
    	paint.setStyle(Style.STROKE);//空心显示
    	canvas.drawRect(rect,paint);
    	paint.setColor(Color.BLUE);
    	paint.setTextSize(20);
    	canvas.drawText("ee的画板", 10, 110, paint);//显示文字
    	paint.setColor(Color.RED);
    	canvas.drawLine(10, 120, 300, 120, paint);
    	RectF oval=new RectF();//定义参考矩形
    	oval.set(10.0f, 140.0f, 110.0f, 200.0f);
    	canvas.drawOval(oval, paint);//画椭圆
    	oval.set(150.0f, 140.0f, 110.0f, 200.0f);//定义大小
    	canvas.drawArc(oval, 150.0f, 140.0f, true, paint);//画弧
    	//绘图
    	Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.wall);
    	//消除锯齿
    	paint.setAntiAlias(true);
    	canvas.drawBitmap(bitmap, 200, 200,paint);
    	paint.setTextSize(20);
    	paint.setColor(Color.BLACK);
    	canvas.drawText("图片高度:"+bitmap.getHeight()+", 图片宽度:"+bitmap.getWidth(),
    			10, bitmap.getHeight()+20, paint);
    	
    	
    	
    	
    	
	
   }
	

}

 然后在布局文件添加我们自己定义的组件 MyView

 

 

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MyView" >
    <com.example.viewdraw.MyView 
        android:id="@+id/myview"
          android:layout_width="fill_parent"
    android:layout_height="fill_parent"
        
        
        
                            />

</LinearLayout>

接下来,Activity里面只需要显示即可,这里是不动的,系统生成默认。

实现效果如图:




 

 
 接下来,我们深入运用一下Bitmap

首先我们定义将图片拉伸。

加入以下几行代码:

/*
    	 * 将图片拉伸至手机屏幕大小
    	 */
    	DisplayMetrics dm=getResources().getDisplayMetrics();
    	int screenWidth=dm.widthPixels;
    	int screenHeight=dm.heightPixels;
    	bitmap=Bitmap.createScaledBitmap(bitmap, screenWidth, screenHeight, true);
    	canvas.drawBitmap(bitmap, 0, 0, paint);

 

 

 然后我们定义图片在指定区域显示,也就是定义一个矩形框

加上这个代码

canvas.drawBitmap(bitmap, null, new Rect(30,50,200,200), paint);

 

 

 

 

  • 大小: 43.4 KB
  • 大小: 142 KB
  • 大小: 74 KB
  • 大小: 9.8 KB
1
0
分享到:
评论

相关推荐

    android图形绘制

    1. **Canvas**: Canvas是Android图形系统的核心组件之一,它提供了各种绘图方法,如`drawCircle()`、`drawRect()`、`drawOval()`、`drawTriangle()`等。例如,我们可以使用`drawCircle(float x, float y, float ...

    Android的graphics绘制了印章图像

    下面将详细介绍这个主题,包括Android图形绘制的基础、印章图像的实现原理以及如何通过源码学习。 1. Android图形绘制基础 Android的图形绘制主要基于Canvas和Paint类。Canvas提供了在Bitmap上进行绘制的接口,而...

    android2D图形绘制

    在Android平台上,2D图形绘制是一项基础且重要的技术,它允许开发者创建丰富的用户界面和动态效果。本主题将深入探讨Android 2D图形绘制的核心概念、API和实践技巧。 首先,Android提供了两种主要的方式来实现2D...

    Android绘制图形

    Android图形绘制不仅限于基本形状,还可以利用Shader类创建复杂的渐变、纹理和图案。Shader提供了多种类型,如LinearGradient、RadialGradient和BitmapShader,它们可以让你的图形更具动态感和艺术性。 总的来说,...

    android绘制各种图表

    首先,我们需要了解Android图形绘制的基础。Android提供了多种绘制图形的方式,如Canvas、Paint、Path等。Canvas是画布,我们可以在上面绘制各种图形;Paint是画笔,定义了颜色、线条样式等绘制属性;Path则用于构建...

    Android绘制时钟

    总之,"Android绘制时钟"是一个涵盖了Android图形绘制、定时更新、动画效果和自定义视图等多个知识点的实践项目。通过这个项目,开发者不仅可以提升自己的UI设计能力,还能对Android系统的工作原理有更深入的理解。...

    Android手动绘制圆形图标

    这个过程涉及到对Android图形绘制的理解,特别是使用`LayerDrawable`和颜色渐变的概念。 首先,我们要明白`LayerDrawable`是Android中的一个复合drawable类,它允许我们将多个`Drawable`对象堆叠在一起,形成一个...

    android 画各种图形

    在Android开发中,绘制图形是一项基础且重要的技能,它能够帮助开发者实现丰富的用户界面和交互效果。本主题主要探讨如何在...通过对提供的源码进行学习和实践,可以加深对Android图形绘制机制的理解,提高开发能力。

    android 绘制图形

    以上就是基于提供的文件名解析出的Android图形绘制的主要知识点。通过深入研究这些示例,开发者可以掌握绘制复杂图形、实现动态效果以及优化性能的各种技巧。这些技术对于开发高质量的Android应用,尤其是游戏和交互...

    Android图形图表绘制控件

    Android图形图表绘制控件提供了丰富的功能,帮助开发者创建动态、交互式的图形,以便更好地传达信息和数据。本篇文章将深入探讨Android平台上的图形图表绘制技术。 首先,我们来看`AChartEngine`这个库。`...

    安卓Android源码——使用代码绘制一个电池 (非图片).rar

    这个过程涉及到了Android图形绘制的基础知识,包括Canvas、Paint以及形状绘制等核心概念。 1. **Canvas与Paint** - **Canvas**:在Android中,Canvas是用于图形绘制的基础类,它提供了多种绘制几何形状、文本、...

    Android二维图形绘制中奥运五环的设计与实现.pdf

    Android二维图形绘制中奥运五环的设计与实现 Android二维图形绘制中奥运五环的设计与实现是Android客户端应用开发中一个重要的知识点。下面我们将对相关知识点进行详细的解释和分析。 一、Android二维图形绘制基础...

    android图形图像.doc

    此外,`Paint`、`Canvas`和`Bitmap`是Android图形绘制的核心工具。`Paint`对象用于定义绘制样式,如颜色、字体等;`Canvas`则提供了绘制的基础接口,如画线、画圆、画文本等;`Bitmap`是位图图像的载体,可以进行...

    Android利用View绘制饼状图,折线图,柱状图等

    在Android开发中,为了展示数据或者进行可视化交互,我们经常需要使用各种图表,如饼状图、柱状图和折线图。这些图表可以帮助用户直观地...这种实践不仅锻炼了Android图形绘制的能力,也为项目提供了更灵活的定制空间。

    android简单的画图板实现代码

    首先,我们需要了解Android图形绘制的基础。在Android中,我们主要使用Canvas类来进行图形绘制。Canvas提供了各种方法,如drawRect(), drawCircle(), drawPath()等,用于在Bitmap上绘制几何形状、线条和路径。在这个...

    android动态绘制

    本示例源码主要涉及到`Canvas`和`Paint`这两个核心类,它们是Android图形绘制的基础。 `Canvas`可以看作是一个画布,开发者可以在上面进行各种图形的绘制,如线条、圆形、矩形、弧线等。它提供了多种方法来绘制图形...

    android 绘图 简单演示

    本篇文章将深入探讨“android绘图简单演示”,并以Canvas的实现为重点,结合提供的CanvasDemo示例,来解析Android图形绘制的基础知识。 首先,Canvas提供了丰富的绘图方法,如drawRect、drawCircle、drawLine、...

    图形绘制ANDROID UI

    例如,`Canvas`类是Android图形系统的核心,允许开发者在指定的`Bitmap`上绘制各种形状和图像。你可以使用`Canvas`的各种方法,如`drawRect()`, `drawCircle()`, `drawLine()`等,来绘制基本图形;通过`Path`对象,...

    android自定义的边缘凹凸的View

    总结来说,实现一个边缘凹凸的自定义View涉及到Android图形绘制的基本原理和技巧,通过理解并实践这些步骤,开发者不仅可以创建出独特的界面元素,还能提升对Android系统底层机制的理解。在实际开发中,结合博客文章...

Global site tag (gtag.js) - Google Analytics