Android画图技巧应用方式分析

移动开发 Android
我们在这篇文章中通过对一段代码的解读来充分了解了Android画图的相关操作技巧。希望初学者能从中获得一些帮助。

Android 操作系统开发中,对于图形界面的操作时非常常见的一个基础操作。我们可以先通过本文介绍的有关Android画图的相关操作,来具体了解一下图形界面的操作技巧,以此提高我们对这一系统的认知程度。

  1. import java.io.InputStream;   
  2. import android.app.Activity;   
  3. import android.content.Context;   
  4. import android.graphics.Bitmap;   
  5. import android.graphics.BitmapFactory;   
  6. import android.graphics.Canvas;   
  7. import android.graphics.Color;   
  8. import android.graphics.LinearGradient;   
  9. import android.graphics.Paint;   
  10. import android.graphics.PorterDuff;   
  11. import android.graphics.PorterDuffXfermode;   
  12. import android.graphics.Shader;   
  13. import android.graphics.Typeface;   
  14. import android.os.Bundle;   
  15. import android.view.View;   
  16. public class AlphaBitmap extends Activity {   
  17. @Override   
  18. protected void onCreate(Bundle savedInstanceState) {   
  19. super.onCreate(savedInstanceState);   
  20. setContentView(new SampleView(this));   
  21. }   
  22. private static class SampleView extends View {   
  23. private Bitmap mBitmap;   
  24. private Bitmap mBitmap2;   
  25. private Bitmap mBitmap3;   
  26. private Shader mShader;   
  27. private static void drawIntoBitmap(Bitmap bm) {   
  28. float x = bm.getWidth();   
  29. float y = bm.getHeight();   
  30. // 建一个有制定对象的画布   
  31. Canvas c = new Canvas(bm);   
  32. Paint p = new Paint();   
  33. // 主要用来消除边缘吧从效果上看 好像false的话有毛边   
  34. p.setAntiAlias(true);   
  35. p.setAlpha(0x555555);//灰色   
  36. c.drawCircle(x/2, y/2, x/2, p);   
  37. p.setAlpha(0x0000ff);//蓝色   
  38. p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));   
  39. // 下面是字体的相关设置   
  40. p.setTextSize(20);   
  41. String familyName = "宋体";   
  42. Typeface font = Typeface.create(familyName,Typeface.ITALIC);   
  43. p.setTypeface(font);   
  44. p.setTextAlign(Paint.Align.CENTER);   
  45. Paint.FontMetrics fm = p.getFontMetrics();   
  46. c.drawText("我爱android", x/2, (y-fm.ascent)/2, p);   
  47. }   
  48. public SampleView(Context context) {   
  49. super(context);   
  50. setFocusable(true);   
  51. // 得到图像的几种方法   
  52. InputStream is = context.getResources().
    openRawResource(R.drawable.app_sample_code);   
  53. mBitmap = BitmapFactory.decodeStream(is);   
  54. //从一幅图像抽取色值变为新的图像,一般是画笔的颜色 同下面 
    p.setColor(Color.BLUE);   
  55. mBitmapmBitmap2 = mBitmap.extractAlpha();   
  56. mBitmap3 = Bitmap.createBitmap(200, 200, Bitmap.Config.ALPHA_8);   
  57. drawIntoBitmap(mBitmap3);   
  58. //一种渐变效果   
  59. mShader = new LinearGradient(0, 0, 150, 70, new int[] {   
  60. Color.RED, Color.GREEN, Color.BLUE },   
  61. null, Shader.TileMode.MIRROR);   
  62. }   
  63. @Override protected void onDraw(Canvas canvas) {   
  64. canvas.drawColor(Color.LTGRAY);   
  65. Paint p = new Paint();   
  66. float y = 10;   
  67. p.setColor(Color.BLUE);   
  68. canvas.drawBitmap(mBitmap, 10, y, p);   
  69. y += mBitmap.getHeight() + 10;   
  70. canvas.drawBitmap(mBitmap2, 10, y, p);   
  71. y += mBitmap2.getHeight() + 10;   
  72. p.setShader(mShader);   
  73. canvas.drawBitmap(mBitmap3, 10, y, p);   
  74. }   
  75. }   

如果把一幅图片变成一个可变图片之后,就可以在图片上打上自己的印记了,这里就不写了。这个程序主要是 怎么自己画一个图片,可以用在图片上画,也可以就如同一张白纸自己画,同时还有一个函数,可以用来提取外形的。

【编辑推荐】

  1. Android dialog应用经验总结 
  2. Android短信发送功能实现技巧分享 
  3. Android开机自启动具体操作方法简介 
  4. Android显示网络图片相关实现方法浅谈 
  5. Android应用技巧总结 
责任编辑:曹凯 来源: javaeye.com
相关推荐

2010-01-27 17:45:15

Android应用技巧

2010-01-27 16:35:54

Android常用技巧

2010-02-22 17:21:02

WCF消息交换

2010-01-25 17:43:13

Android资源

2010-01-25 11:09:58

Android Htt

2010-02-06 13:52:39

C++ profile

2013-12-30 16:27:43

Windows画图工具

2010-01-25 17:21:34

Android Act

2010-03-04 10:16:41

Python应用技巧

2010-01-25 16:08:37

Android ADB

2010-01-28 10:03:19

Android Lis

2010-01-25 13:29:53

Android本地应用

2009-12-18 09:27:23

Ruby读写excel

2010-01-25 16:52:22

Android Int

2010-01-26 10:52:01

Android绘图

2010-02-22 17:51:46

WCF传较大数据

2010-02-22 13:28:05

WCF异步调用

2010-01-27 15:29:25

Android屏幕大小

2010-01-28 10:55:14

Android电源管理

2010-01-25 13:50:41

Android输出Lo
点赞
收藏

51CTO技术栈公众号