绘制Android的机器人
2015-09-14 14:29
417 查看
最近在看android的图形图像处理技术,觉得绘制android的机器人很有意思,于是想给自己记录下来。
1.修改main.xml文件
2.在MainActivity文件中创建一个名为MyView的内部类,该类继承自android.view.View类,并且添加构造方法和重写onDraw(Canvas canvas)方法,然后在onCreate()方法中获取帧布局管理器,并将MyView视图添加到该帧布局管理器中
3.在MyView的onDraw()方法中,首先创建一个画笔,并设置画笔的属性
4.运行后效果如下:
第一个属于我的android机器人就完成啦。
1.修改main.xml文件
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/frameLayout1" > </FrameLayout>
2.在MainActivity文件中创建一个名为MyView的内部类,该类继承自android.view.View类,并且添加构造方法和重写onDraw(Canvas canvas)方法,然后在onCreate()方法中获取帧布局管理器,并将MyView视图添加到该帧布局管理器中
3.在MyView的onDraw()方法中,首先创建一个画笔,并设置画笔的属性
package com.example.androidrobert; import com.example.androidrobert.R; import android.os.Bundle; import android.view.View; import android.widget.FrameLayout; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; @SuppressLint("DrawAllocation") public class MainActivity extends Activity { private FrameLayout ll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ll = (FrameLayout) findViewById(R.id.frameLayout1); ll.addView(new MyView(this)); //将自定义的MyView视图添加到帧布局管理器中 } @SuppressLint("DrawAllocation") public class MyView extends View{ public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } @SuppressLint("DrawAllocation") protected void onDraw(Canvas canvas){ super.onDraw(canvas); Paint paint = new Paint(); //创建采用默认设置的画笔 paint.setAntiAlias(true); //使用抗锯齿功能 paint.setColor(0xffa4c739); // 设置画笔颜色为绿色 // 绘制头 RectF rectf_head = new RectF(10, 10, 100, 100); rectf_head.offset(100, 20); canvas.drawArc(rectf_head, -10, -160, false, paint); // 绘制弧 // 绘制眼睛 paint.setColor(Color.WHITE); // 设置画笔颜色为白色 canvas.drawCircle(135, 53, 4, paint); // 绘制圆 canvas.drawCircle(175, 53, 4, paint); paint.setColor(0xffa4c739); // 绘制天线 canvas.drawLine(120, 15, 135, 35, paint); canvas.drawLine(190, 15, 175, 35, paint); // 绘制线 // 绘制身体 canvas.drawRect(110, 75, 200, 150, paint); // 绘制矩形 RectF rectf_body = new RectF(110, 140, 200, 160); canvas.drawRoundRect(rectf_body, 10, 10, paint); //绘制圆角矩形 // 绘制胳膊 RectF rectf_arm = new RectF(85, 75, 105, 140); canvas.drawRoundRect(rectf_arm, 10, 10, paint); rectf_arm.offset(120, 0); // 设置在X轴上偏移120像素 canvas.drawRoundRect(rectf_arm, 10, 10, paint); // 绘制腿 RectF recft_leg = new RectF(125, 150, 145, 200); canvas.drawRoundRect(recft_leg, 10, 10, paint); recft_leg.offset(40, 0); canvas.drawRoundRect(recft_leg, 10, 10, paint); } } }
4.运行后效果如下:
第一个属于我的android机器人就完成啦。
相关文章推荐
- android自定义PopupWindow组件
- Android(java)学习笔记246:ContentProvider使用之学习ContentProvider(内容提供者)的目的
- Android 设置字体
- Your content must have a Listview whose id attribute is 'android.R.id.list'
- Android多渠道批量打包插件推荐 - 兰贝壳儿
- Android SDK : Local Datas Storage
- Android 属性动画
- Android Studio项目的八种查看文件模式
- Android动画之AnimatorSet如何循环执行
- android学习笔记7 - 连接服务器操作和数据处理(get+service)
- Android应用建项目第一步
- Android 自定义圆环进度条 自适应显示百分比
- Android Studio:正确引入so文件的方法 推荐
- Android Activity启动慢
- Android java.lang.IllegalStateException: ViewPager has not been bound 的解决办法
- android 自定义控件 自定义属性详细介绍
- Android bitmap图片处理
- android设置以太网ip
- android:Layout_weight正确的理解
- Android,隐藏输入法