- 浏览: 881836 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- android (55)
- CSS (23)
- eclipse (25)
- Data Structes and Algorithms (53)
- J2SE (87)
- Java_面试学习_j2se (26)
- java_面试学习_非技术 (13)
- java_gui (2)
- java_设计模式 (27)
- JDBC (10)
- java_web (15)
- hibernate (5)
- Oracle (37)
- Struts2 (7)
- Word-----dos (24)
- Jbpm (3)
- java小技巧 (8)
- math (1)
- flex (12)
- WebService (4)
- 生活 (9)
- 小框架或小语言 (27)
- spring (1)
- 面试~~~软实力 (7)
- jstat的用法 (1)
- jmap (1)
- 数据链路层和传输层的流量控制区别 (1)
- shell (0)
- 财商 (1)
- javascript (0)
- js研究 (1)
- 代码收集 (0)
最新评论
-
海尔群:
http://jingyan.baidu.com/articl ...
android加密 -
完美天龙:
------------------------- ...
asm----字节码操纵 -
houniao1990:
大神,请问 string 类型 定义为 oracle的 cha ...
hibernate注解 -
JamesQian:
Line:103
f.doFilter(msg);
是否需 ...
责任链模式_过滤器模式 -
sacoole:
好评
interview--- 如何从N个数中选出最大(小)的n个数?
main.xml
<com.zwz.MyView android:id="@+id/myView" android:layout_width="fill_parent" android:layout_height="fill_parent" />
public class MyView extends View{ public MyView(Context context, AttributeSet attrs) {//构造器 super(context, attrs); } protected void onDraw(Canvas canvas) {//重写的绘制方法 super.onDraw(canvas); canvas.drawColor(Color.BLACK);//绘制黑色背景 Paint paint = new Paint();//创建画笔 paint.setColor(Color.WHITE);//设置画笔颜色为红色 canvas.drawRect(10, 10, 110, 110, paint);//绘制矩形 canvas.drawText("这是字符串", 10, 130, paint);//字符串,以字符串下面为基准 RectF rf1 = new RectF(10, 130, 110, 230);//定义一个矩形 canvas.drawArc(rf1, 0, 45, true, paint);//画弧,顺时针 canvas.drawLine(150, 10, 250, 110, paint);//画线 RectF rf2 = new RectF(150, 130, 250, 230);//定义一个矩形 canvas.drawOval(rf2, paint);//画圆 } }
------------------------------------------
图片绘制
public class MyView extends View{//继承自View Bitmap myBitmap;//图片的引用 Paint paint;//画笔的引用 public MyView(Context context, AttributeSet attrs) {//构造器 super(context, attrs); // TODO Auto-generated constructor stub this.initBitmap(); } public void initBitmap(){ paint = new Paint();//创建一个画笔 myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img);//获得图片资源 } @Override protected void onDraw(Canvas canvas) {//重写的绘制方法 // TODO Auto-generated method stub super.onDraw(canvas); paint.setAntiAlias(true);//打开抗锯齿 paint.setColor(Color.WHITE);//设置画笔的颜色 paint.setTextSize(15); canvas.drawBitmap(myBitmap, 10, 10, paint);//绘制图片 canvas.drawText("图片的宽度: "+myBitmap.getWidth(), 20, 220, paint);//绘制字符串,图片的宽度 canvas.drawText("图片的高度: "+myBitmap.getHeight(), 150, 220, paint);//绘制字符串,图片的高度 } }
-----------------------------------------------------------------
SurfaceView--显存的一个映射,写入到Surface 的内容,可以被直接复制到显存从而显示出来
继承SurfaceView并实现SurfaceHolder.Callback接口 ----> SurfaceView.getHolder()获得SurfaceHolder对象 ---->SurfaceHolder.addCallback(callback)添加回调函数---->SurfaceHolder.lockCanvas()获得Canvas对象并锁定画布----> Canvas绘画 ---->SurfaceHolder.unlockCanvasAndPost(Canvas canvas)结束锁定画图,并提交改变,将图形显示
SurfaceHolder,可以把它当成surface的控制器,用来操纵surface
(1)、abstract void addCallback(SurfaceHolder.Callback callback);
// 给SurfaceView当前的持有者一个回调对象。
(2)、abstract Canvas lockCanvas();
// 锁定画布,一般在锁定后就可以通过其返回的画布对象Canvas,在其上面画图等操作了。
(3)、abstract Canvas lockCanvas(Rect dirty);
// 锁定画布的某个区域进行画图等..因为画完图后,会调用下面的unlockCanvasAndPost来改变显示内容。
// 相对部分内存要求比较高的游戏来说,可以不用重画dirty外的其它区域的像素,可以提高速度。
(4)、abstract void unlockCanvasAndPost(Canvas canvas);
// 结束锁定画图,并提交改变
public class ViewTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); } //视图内部类 21 class MyView extends SurfaceView implements SurfaceHolder.Callback 22 { 23 private SurfaceHolder holder; 24 private MyThread myThread; 25 public MyView(Context context) { 26 super(context); 27 // TODO Auto-generated constructor stub 28 holder = this.getHolder(); 29 holder.addCallback(this); 30 myThread = new MyThread(holder);//创建一个绘图线程 31 } 32 33 @Override 34 public void surfaceChanged(SurfaceHolder holder, int format, int width, 35 int height) { 36 // TODO Auto-generated method stub 37 38 } 39 40 @Override 41 public void surfaceCreated(SurfaceHolder holder) { 42 // TODO Auto-generated method stub 43 myThread.isRun = true; 44 myThread.start(); 45 } 46 47 @Override 48 public void surfaceDestroyed(SurfaceHolder holder) { 49 // TODO Auto-generated method stub 50 myThread.isRun = false; 51 } 52 53 } 54 //线程内部类 55 class MyThread extends Thread 56 { 57 private SurfaceHolder holder; 58 public boolean isRun ; 59 public MyThread(SurfaceHolder holder) 60 { 61 this.holder =holder; 62 isRun = true; 63 } 64 @Override 65 public void run() 66 { 67 int count = 0; 68 while(isRun) 69 { 70 Canvas c = null; 71 try 72 { 73 synchronized (holder) 74 { 75 c = holder.lockCanvas();//锁定画布,一般在锁定后就可以通过其返回的画布对象Canvas,在其上面画图等操作了。 76 c.drawColor(Color.BLACK);//设置画布背景颜色 77 Paint p = new Paint(); //创建画笔 78 p.setColor(Color.WHITE); 79 Rect r = new Rect(100, 50, 300, 250); 80 c.drawRect(r, p); 81 c.drawText("这是第"+(count++)+"秒", 100, 310, p); 82 Thread.sleep(1000);//睡眠时间为1秒 83 } 84 } 85 catch (Exception e) { 86 // TODO: handle exception 87 e.printStackTrace(); 88 } 89 finally 90 { 91 if(c!= null) 92 { 93 holder.unlockCanvasAndPost(c);//结束锁定画图,并提交改变。 94 95 } 96 } 97 } 98 } 99 } 100 }
发表评论
-
EditText失去焦点
2011-12-25 13:57 1107<LinearLayout andr ... -
调用照相机和相册
2011-12-21 19:26 1510直接下代码看吧。。 ... -
wifi流程详细分析
2011-12-09 23:56 10946一.启动wifi服务 1.在 S ... -
Android WifiManager 常量
2011-12-09 00:20 6058ACTION_PICK_WIFI_NETWORK Activ ... -
android 探索首选项框架xxxPreference
2011-12-08 20:50 1784http://blog.csdn.net/qinjuning/ ... -
Wifi
2011-12-02 15:02 1729. Confirm if Wifi is On Usin ... -
Tab
2011-12-01 16:02 1280public class MyTab extends ... -
color
2011-12-01 10:48 1130<?xml version="1.0&qu ... -
EditText属性解释
2011-12-01 09:31 2447EditText继承关系:View-->TextView ... -
Android之Inflate()方法用途
2011-11-30 10:40 3220原文: Inflate()作用就是将xml定义的一个布局找出 ... -
android 自定义listview无法响应点击事件OnItemClickListener
2011-11-29 22:34 2810如果你的自定义ListViewItem中有Button或者 ... -
事件event
2011-11-29 22:34 1029private class OnItemClickLis ... -
gridView ---图片显示类九宫格
2011-12-01 09:23 3174<GridView xmlns:android= ... -
Image gallery
2011-11-25 14:36 5<ImageSwitcher ... -
Image gallery
2011-11-25 14:36 1139public class ImageShowActiv ... -
Image gallery
2011-11-25 14:36 4public class ImageShowActiv ... -
Image gallery
2011-11-25 14:36 4public class ImageShowActiv ... -
Image gallery
2011-11-25 14:36 4public class ImageShowActiv ... -
Menu
2011-11-25 11:22 1059按menu按钮弹出来的东西 public static ... -
listView
2011-11-25 10:35 2208android.R.layout.simple_list_it ...
相关推荐
标题中的“skia_java_绘图_google_Skiaandroid_android_”表明我们将探讨如何在Android平台上,使用Google的Skia图形库,通过Java语言来实现绘图功能。Skia是Google开发的一个强大的2D图形处理库,广泛应用于Android...
综上所述,"android_draw.rar"中涵盖的Android绘图知识广泛而深入,包括基本的绘图对象、图形操作、样式设置以及自定义视图的绘制。理解并掌握这些知识,对于提升Android应用的界面设计和用户体验具有重要作用。通过...
2. **Canvas与Paint**:Canvas是Android 2D绘图的核心,提供了绘制几何形状、文本、位图等的方法。Paint对象则用于设置颜色、风格、阴影等绘制属性,控制图像的外观。 3. **Bitmap与Drawable**:Bitmap是Android中...
7. **绘图调用**: 使用glDrawArrays()或glDrawElements()等函数绘制图形,指定绘制的模式(点、线、三角形等)和数据源。 通过"android_opengl.rar"提供的示例,开发者可以学习如何初始化OpenGL环境、设置视口、...
4. **绘图**:可能在`onDraw()`方法中,绘制过程被修改以适应垂直方向。例如,进度条和滑块的渲染位置需要相应调整。 5. **监听器适配**:通常,SeekBar有ProgressChanged、ThumbMoved等监听器,开发者需要确保这些...
本文将详细讲解如何使用Android Studio开发一款基于蓝牙BLE (Bluetooth Low Energy) GATT协议的APP,以便接收单片机发送的数据并进行实时绘图。这个项目对于那些希望实现无线蓝牙数据控制和绘制图表的开发者来说非常...
4. 矢量绘图:矢量图形,如SVG(Scalable Vector Graphics),可以在任何尺寸下保持清晰,不受像素限制。在Android应用中,矢量图形特别适合用于图标和复杂图形,因为它们可以按需缩放而不会失真。此项目支持将...
首先,我们需要理解Android中的绘图基础。在Android中,我们可以使用`Canvas`类来在屏幕上绘制图形。奥运五环由五个不同颜色的同心圆组成,因此我们需要创建`Path`对象来定义每个环的路径,并使用`Paint`对象设置...
源代码中,关键的类可能包括Activity(负责界面管理)、View(自定义的绘图View,继承自View或SurfaceView,处理绘图逻辑)和可能的Utils类(提供一些辅助函数,如颜色转换等)。资源文件可能包含布局XML、图片素材...
5. **Canvas绘图**:贪吃蛇游戏需要在屏幕上实时绘制蛇、食物和其他元素,这需要用到Android的Canvas类。Canvas提供了画线、画圆、填充区域等绘图方法。 6. **SurfaceView或GLSurfaceView**:为了实现流畅的游戏...
总的来说,这个"Android例子源码点连线手工绘制折线图"不仅展示了Android图形编程的基本原理,还强调了自定义视图和数据驱动绘图的重要性。通过学习这个例子,开发者可以深入理解Android图形系统,提高在没有第三方...
在onDraw()中,开发者会使用Canvas对象进行绘图,包括画点、线和形状,这里的雪花就是由一个个小点或者简单的几何图形组成的。 在描述中提到了“雪花增加和减少的功能”。这可能是指用户可以通过交互方式控制飘落的...
这个demo旨在帮助开发者理解并掌握Android中的绘图机制。 Android的绘图系统基于Canvas类,它是Android图形绘制的核心。Canvas提供了多种方法来绘制线条、形状、文本以及位图。在这个demo中,开发者可能使用了...
5. **Canvas与Paint**:Canvas提供了在Bitmap上绘图的能力,而Paint则定义了绘图的样式,如颜色、笔触宽度、抗锯齿等。开发者可以利用这两者进行图像的绘制和编辑。 6. **OpenGL ES**:对于性能要求较高的图像处理...
在图形和动画方面,Android API提供了Canvas和Paint类进行低级绘图,Bitmap用于处理图像,而Animation和Transition类则用于创建动态效果。同时,OpenGL ES库允许进行高性能的3D图形编程。 Android SDK工具是开发...
这可能包括减少不必要的绘图,使用高效的算法,以及利用多线程技术分离游戏逻辑和渲染。 总结,“android飞机大战毕设源码.zip”项目涵盖了Android游戏开发的多个核心知识点,通过学习和分析源码,你可以深入理解...
这涉及到对绘图API(如Canvas和Paint)的理解,以及触摸事件处理。 四、Android UI动画 动画在提升用户体验上起着重要作用。Android提供了属性动画、视图动画和过渡动画等多种动画机制,可用于状态切换、反馈提示等...
通过阅读源码,我们可以深入了解如何将LaTeX公式与Android的绘图系统结合,以及如何处理用户交互。对于想要在Android应用中实现类似功能的开发者来说,这是一个非常有价值的参考案例。 总之,"math_java_android_...
在这个项目中,源码将展示如何使用Android的Canvas、Paint以及触摸事件处理来实现绘图功能。 【核心知识点】 1. **Activity与Fragment**:Android应用的基本构建块,Activity负责处理用户交互,Fragment则可以在多...