要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下:

setAntiAlias: 设置画笔的锯齿效果。 
   setColor: 设置画笔颜色 
   setARGB:  设置画笔的a,r,p,g值。 
   setAlpha:  设置Alpha值 
   setTextSize: 设置字体尺寸。 
   setStyle:  设置画笔风格,空心或者实心。 
   setStrokeWidth: 设置空心的边框宽度。 
   getColor:  得到画笔的颜色 
   getAlpha:  得到画笔的Alpha值

下面是一个简单的示例 来说明这些方法的使用。先来看看运行效果吧。

 package eoe.Demo;

 import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View; public class GameView extends View implements Runnable { public final static String TAG = "Example_05_03_GameView";
// 声明Paint对象
private Paint mPaint = null; public GameView(Context context) {
super(context);
// 构建对象
mPaint = new Paint(); // 开启线程
new Thread(this).start();
} @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); // 设置Paint为无锯齿
mPaint.setAntiAlias(true); // 设置Paint的颜色
mPaint.setColor(Color.RED);
mPaint.setColor(Color.BLUE);
mPaint.setColor(Color.YELLOW);
mPaint.setColor(Color.GREEN);
// 同样是设置颜色
mPaint.setColor(Color.rgb(255, 0, 0)); // 提取颜色
Color.red(0xcccccc);
Color.green(0xcccccc); // 设置paint的颜色和Alpha值(a,r,g,b)
mPaint.setAlpha(220); // 这里可以设置为另外一个paint对象
// mPaint.set(new Paint());
// 设置字体的尺寸
mPaint.setTextSize(14); // 设置paint的风格为“空心”
// 当然也可以设置为"实心"(Paint.Style.FILL)
mPaint.setStyle(Paint.Style.STROKE); // 设置“空心”的外框的宽度
mPaint.setStrokeWidth(5); // 得到Paint的一些属性 颜色、Alpha值、外框的宽度、字体尺寸
Log.i("TAG", "paint Color------>" + mPaint.getColor());
Log.i(TAG, "paint Alpha------->" + mPaint.getAlpha());
Log.i("TAG", "paint StrokeWidth--------->" + mPaint.getStrokeWidth());
Log.i("TAG", "paint TextSize----------->" + mPaint.getTextSize()); // 绘制一空心个矩形
canvas.drawRect((320 - 80), 20, (320 - 80) / 2 + 80, 20 + 40, mPaint); // 设置风格为实心
mPaint.setStyle(Paint.Style.FILL); mPaint.setColor(Color.GREEN); // 绘制绿色实心矩形
canvas.drawRect(0, 20, 40, 20 + 40, mPaint);
} // 触笔事件
public boolean onTouchEvent(MotionEvent event) {
return true;
} // 按键按下事件
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
} // 按键弹起事件
public boolean onKeyUp(int keyCode, KeyEvent event) {
return true;
} public boolean onKeyMultiple(int KeyCode, int repeatCount, KeyEvent event) {
return true;
} @Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
// 更新界面
postInvalidate();
}
}
} package eoe.Demo; import android.app.Activity;
import android.os.Bundle; public class Activity01 extends Activity {
/** Called when the activity is first created. */
private GameView mGameView; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); mGameView = new GameView(this); setContentView(mGameView);
}
}

(转:http://www.cnblogs.com/-OYK/archive/2011/10/25/2223624.html)

Android Paint和Color类绘画实例的更多相关文章

  1. Android Paint和Color类

    要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: se ...

  2. Android ---paint类

    引自:http://www.cnblogs.com/-OYK/archive/2011/10/25/2223624.html Android Paint和Color类   要绘图,首先得调整画笔,待画 ...

  3. (转载)实例详解Android快速开发工具类总结

    实例详解Android快速开发工具类总结 作者:LiJinlun 字体:[增加 减小] 类型:转载 时间:2016-01-24我要评论 这篇文章主要介绍了实例详解Android快速开发工具类总结的相关 ...

  4. Android内核sysfs中switch类使用实例

    Android内核sysfs中switch类使用实例 最终在这个周末,能够干点自己想要干的事了. 由我这个二流的内核驱动开发人员来解析一下sysfs中的switch类.先猜測一下来历,在普通的嵌入式L ...

  5. Android Paint画笔及Color .

    引自:http://blog.csdn.net/q445697127/article/details/7736926 Paint paint = new Paint(); // 设置paint为无锯齿 ...

  6. Android Paint、Canvas、Matrix使用讲解(一、Paint)

    http://blog.csdn.net/tianjian4592/article/details/44336949 好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和 ...

  7. 【转】Android Paint之 setXfermode PorterDuffXfermode 讲解

    [置顶] Android Paint之 setXfermode PorterDuffXfermode 讲解 分类: android动效篇2015-04-07 17:23 978人阅读 评论(8) 收藏 ...

  8. Android应用底部导航栏(选项卡)实例

    现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其 ...

  9. Android Paint的使用以及方法介绍(附源码下载)

    要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: se ...

随机推荐

  1. Java--CyclicBarrier同步屏障原理,使用

    package com; import java.util.Map; import java.util.concurrent.BrokenBarrierException; import java.u ...

  2. redis持久化机制

    redis持久化 redis的数据存在内存中,所以存取性能好.但是存在内存中的数据存在一个问题,一旦机器重启,内存数据消失.为了解决这个问题,redis支持持久化.持久化就是为了解决内存数据丢失时恢复 ...

  3. jinfo命令的使用

    jinfo命令 该命令可以打印出java进程的配置信息:包括jvm参数,系统属性等用法: jinfo [ option ] pid jinfo [ option ] executable core j ...

  4. 极富创意的3D文件夹切换效果

    今天分享的是一个极富创意的文件夹切换效果.这个案例使用CSS 3动画实现了一个3D的平行六面体旋转效果.点击顶部的3个按钮可以旋转并切换.另外,每个六面体本身是一个文件夹,点击后可以展开查看里面的详情 ...

  5. javascript 函数初探 (六)--- 闭包初探#1

    首先我们来看一个函数: var a = 'global variable'; var F = function(){ var b = 'local variable'; var N = functio ...

  6. CXF:通过WebService上传文件,包括大文件的处理

    参考网上文章,用CXF发布上传文件接口,并上传大文件的测试. 框架:spring3.1+cxf2.7.6 1.定义文件类实体 import javax.activation.DataHandler; ...

  7. Base64 Converter

    <Window x:Class="Base64Convertor.MainWindow" xmlns="http://schemas.microsoft.com/w ...

  8. IOS常用第三方开源类库&组件

    1.AFNetworking AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人 ...

  9. Swift设置自动行高

    // 设置行高自适应 tableView.rowHeight = UITableViewAutomaticDimension // 设置预估行高 tableView.estimatedRowHeigh ...

  10. Android http 的使用

    1.okHttp https://github.com/square/okhttp 2.okhttp-utils       https://github.com/hongyangAndroid/ok ...