[转载]Android Paint和Color类-Android开发进阶&经验分享-eoe Android开发者社区_Android开发论坛 – Powered by Discuz!.
要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下:
setAntiAlias: 设置画笔的锯齿效果。
setColor: 设置画笔颜色
setARGB: 设置画笔的a,r,p,g值。
setAlpha: 设置Alpha值
setTextSize: 设置字体尺寸。
setStyle: 设置画笔风格,空心或者实心。
setStrokeWidth: 设置空心的边框宽度。
getColor: 得到画笔的颜色
getAlpha: 得到画笔的Alpha值。
下面是一个简单的示例 来说明这些方法的使用。先来看看运行效果吧。

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