Android-Canvas&Drawable

Android-Canvas&Drawable

一 Canvas

canvas:画布

用于在屏幕上呈现图形,形象称为画布

二 canvas介绍

常用的类

1 clip:裁剪区域

2 matrix:矩阵

将画布分为许多格子

旋转方法是画布旋转

3 save:保存画布的状态

restore:恢复画布的状态

例如将画布旋转后在画其他的内容,保存后,在恢复,

常用的draw方法:

drawRectl:画矩形

drawCircle:画圆形

drawOval:画椭圆

drawPath:画路径

drawLine:画线条

drawPoint:画点

drawText:画文本

drawColor:设置颜色

drawBitmap:画图片

SufaceView:常用于游戏

图形动态设置方法:

不断刷新图形的帧数。

主线程view:invalidate 会使onDraw方法失效

子线程view:postinvalidate会使onDraw方法失效

三 Drawable介绍

常用的Drawable:

Bitmapdrawable:画图,最常用

Shapedrawable:画背影

Picturedrawable:画图片

Layoutdrawable:画布局

自定义drawable:

定义和实现drawable的方法:

1 用资源文件中的图片:

支持的图片有png(推荐), jpg(可以接受), gif(不推荐)

getResource()方法获取drawable文件夹内的资源

2 从xml文件中生成

在drawable文件夹中定义xml文件,在Activity中定义布局并获取xml资源

3 编码自定义构造

自定义一个view类继承自drawable类,重写父类的方法

四 nine-Patch

1 定义:9-patch是一个标准的png图像, 它包括二外的一个像素的边界,后缀名必须为.0.png.

并且保存在工程的res/drawable目录下。如果从apk文件中解压得到的*.9.png,

注意它是已将走位的空包像素去掉的,在使用时必须加上

2 区域

左线和上线:控制拉伸区域

右线和下线:内容控制区域

3 使用

工具:draw9patch.bat在sdk下的tool目录下

按下鼠标左键,选中

shift+鼠标左键,取消选中

选中后会有黑线表示

做好的9-patch如下图:

时间: 2024-09-07 01:39:36

Android-Canvas&Drawable的相关文章

Android Canvas绘图详解(图文) - 泡在网上的日子

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

Android Canvas绘图详解(图文)

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章. 大 部分2D使用的api都在android.graphics和android.graphics.drawabl

Android 自定义Drawable

1.使用BitmapShader实现图片圆角 public class CornerDrawable extends Drawable { private Paint mPaint; private Bitmap bmp; private RectF rectF; public CornerDrawable(Bitmap bmp) { this.bmp = bmp; BitmapShader shader = new BitmapShader(bmp, Shader.TileMode.CLAMP

Android Canvas不能换行,或者不识别\n,\r\n的解决方案

在使用Canvas绘制文本的时候,如果要绘制的字符串含有\r\n,\n换行的时候,会识别不出来,当成空格绘制出来. 解决方案: 1.使用StaticLayout来实现,具体代码如下: TextPaint mTextPaint=new TextPaint(); StaticLayout mTextLayout = new StaticLayout(mText, mTextPaint, canvas.getWidth(), Alignment.ALIGN_NORMAL, 1.0f, 0.0f, fa

Android Canvas Paint绘制文本

字体有三种类型:1,内置基本字体 2,通过基本字体和样式,创建新的Typeface 3,引入外部的ttf文件. 示例代码如下: 1. package com.mike.activity; 2. 3. import android.R; 4. import android.app.Activity; 5. import android.graphics.Bitmap; 6. import android.graphics.Canvas; 7. import android.graphics.Col

Android入门——Drawable与对应的资源xml的应用

引言 Android 中的Drawable是一个抽象的概念,换言之所有能被画出来的都可以定义成Drawable(A Drawable is a general abstraction for "something that can be drawn." ).所以Android应用中使用最为广泛和最灵活的资源,不仅仅可以直接使用.png..9.png..gif..jpg等图片作为资源,还可以使用多种XML文件. 一.Drawable概述 Drawable同时也是一个抽象类,我们在Andr

android.graphics.drawable.Drawable注释翻译

/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://w

Android Canvas绘制

public class DrawView extends View { public DrawView(Context context) {  super(context); } @Override protected void onDraw(Canvas canvas) {  super.onDraw(canvas);  /*   * 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawPath 绘制任意多边形   * drawLine

【转】Android Canvas绘图详解(图文)

转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文) 泡在网上的日子 发表于 2012-12-12 20:29 第 63165 次阅读 Canvas,android 15 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳

[转]android中drawable资源的解释及例子

原文链接:         http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable Resources,英文好的朋友可以直接去读英文.总结这篇文章的目的是自己在使用drawable资源遇到一些问题跟大家分享下,同时整理下自己对drawable的理解. drawable资源共有10种,包括Bitmap文件.Nine-Path文件.Layer List.State List.Level