android画画源码(Android 绘制)
本文目录一览:
- 1、android 怎么手动绘制几何图形源码
- 2、Android是什么语言编写?看懂源码.它的开源代码是什么语言?系统源码来说
- 3、Android开发在画板上画些东西,甩一甩手机实现画板上的东西变成泼墨效果。
- 4、android 绘图
- 5、求android源码下载地址,就像学学源码的原理
- 6、如何获取android源代码
android 怎么手动绘制几何图形源码
可以参考下面的代码
package cn.m15.xys;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
public class Geometry extends Activity {
public int mScreenWidth = 0;
public int mScreenHeight = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(new GeometryView(this));
super.onCreate(savedInstanceState);
}
class GeometryView extends View {
Paint mPaint = null;
public GeometryView(Context context) {
super(context);
mPaint = new Paint();
mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画布颜色 也就是背景颜色
canvas.drawColor(Color.WHITE);
mPaint.setColor(Color.BLACK);
canvas.drawText("绘制无规则几何图形喔!!!", 150, 30, mPaint);
//绘制一条线
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(4);
canvas.drawLine(0, 0, 100, 100, mPaint);
//绘制一个矩形
mPaint.setColor(Color.YELLOW);
canvas.drawRect(0, 120, 100, 200, mPaint);
//绘制一个圆形
mPaint.setColor(Color.BLUE);
canvas.drawCircle(80, 300, 50, mPaint);
//绘制一个椭圆
mPaint.setColor(Color.CYAN);
canvas.drawOval(new RectF(300,370,120,100), mPaint);
//绘制多边形
mPaint.setColor(Color.BLACK);
Path path = new Path();
path.moveTo(150+5 , 400 -50);
path.lineTo(150+45, 400 - 50);
path.lineTo(150+30, 460 - 50);
path.lineTo(150+20, 460 - 50);
path.close();
canvas.drawPath(path, mPaint);
}
}
}
Android是什么语言编写?看懂源码.它的开源代码是什么语言?系统源码来说
简单来说 android 是以 linux kernel 内核为基础android画画源码的操作系统android画画源码,android画画源码你可以看看 linux kernel 是用什么语言的就可以android画画源码了。
Android开发在画板上画些东西,甩一甩手机实现画板上的东西变成泼墨效果。
画画板实现起来其实很简单,我们只需要利用android给我们提供的Canvas类来操作就可以实现简单的画画功能
直接看代码,注释都写清楚了
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
public class MainActivity extends Activity {
private ImageView iv;
private Bitmap baseBitmap;
private Canvas canvas;
private Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.iv = (ImageView) this.findViewById(R.id.iv);
// 创建一张空白图片
baseBitmap = Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888);
// 创建一张画布
canvas = new Canvas(baseBitmap);
// 画布背景为灰色
canvas.drawColor(Color.GRAY);
// 创建画笔
paint = new Paint();
// 画笔颜色为红色
paint.setColor(Color.RED);
// 宽度5个像素
paint.setStrokeWidth(5);
// 先将灰色背景画上
canvas.drawBitmap(baseBitmap, new Matrix(), paint);
iv.setImageBitmap(baseBitmap);
iv.setOnTouchListener(new OnTouchListener() {
int startX;
int startY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 获取手按下时的坐标
startX = (int) event.getX();
startY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
// 获取手移动后的坐标
int stopX = (int) event.getX();
int stopY = (int) event.getY();
// 在开始和结束坐标间画一条线
canvas.drawLine(startX, startY, stopX, stopY, paint);
// 实时更新开始坐标
startX = (int) event.getX();
startY = (int) event.getY();
iv.setImageBitmap(baseBitmap);
break;
}
return true;
}
});
}
public void save(View view) {
try {
File file = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
OutputStream stream = new FileOutputStream(file);
baseBitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
// 模拟一个广播,通知系统sdcard被挂载
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
intent.setData(Uri.fromFile(Environment
.getExternalStorageDirectory()));
sendBroadcast(intent);
Toast.makeText(this, "保存图片成功", 0).show();
} catch (Exception e) {
Toast.makeText(this, "保存图片失败", 0).show();
e.printStackTrace();
}
}
}
简单的布局文件
?
1
2
3
4
5
6
7
8
relativelayout xmlns:android="" xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"
button android:id="@+id/button1" android:onclick="save" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:text="保存图片"
imageview android:layout_above="@id/but
android 绘图
这个建议你搜索AChartEngine,这个是专门做报表的。给你一个参考地址
这个页面中的第一个示例折线图就是一个温度的曲线图,具体我没过多研究,你可以试试。
求android源码下载地址,就像学学源码的原理
Google刚刚公布android画画源码,稳定版android画画源码的Android源代码已经公布android画画源码,任何人都可以免费下载。Google希望通过公布源代码,电信运营商和手机制造商,乃至一般开发者们进一步深刻了解和利用Android系统,从而有益于该平台下android画画源码的的发展。
看来T-Mobile G1不一定打得过iPhone,那么Android呢android画画源码?
现在源代码公布在,SDK网站是
如何获取android源代码
当前的Android 代码托管在两个方: 和 之前在 android.git.kernel.org 上也有托管,不过现在重定向到了 好在都支持git访问。
google 提供的 repo 工具实际上是一个内部操作git工具来简化操作Android源码的Python脚本。经过尝试,直接使用git 工具在ubuntu 下可以实现clone Android 源码。下面介绍一下方法:
1. 获取当前的在github 上托管的Android git repositories:
github页面为: 。不过这个页面不支持通过 wget "" 或者 curl "" 的方式访问, 错误信息如下:
这样一来,获取这个页面内容并解析出其中的git repositories就需要手工完成了。好在方法也很简单: 浏览器中打开这个页面,然后"查看源文件"并保存为文本文件,比如保存为"android_git.html"。最后,通过下面的一行脚本来取出 Android git repositories.
grep -o "span class=\"repo\".*/span" ./android_git.html | cut -d "" -f2 | cut -d "" -f1 android_git.txt
2. 基于第1步获取的Android git repositories 来生成clone git的脚本:
执行如下的一行awk脚本
awk 'BEGIN{i=1; print "#!/usr/bin/env bash" }{ print "\n\necho \"begin clone android git ["i"]: " $1 "\""; print "git clone
" $1 ".git"; print "echo \"finish clone android git ["i"]: " $1 "\"" ; i=i+1; }' ./android_git.txt
git_clone_android.sh
现在用于clone android git的脚本生成好了,一共有 103 个 git repository.
3. 执行git_clone_android.sh这个脚本即可。
整体Android 源码的代码量是相当庞大,完成所有的clone 任务后,大概占用了 7G 磁盘空间,历时20多个小时,这是在网速比较快的情况下达到的效果:
其间也有许多问题,比如多次出现如下的错误:
这个时候需能做的只能是"try again"了。
需要说明的是"不要试图同时并发执行多个git clone 命令",这样会导致大量出现上面贴图中的错误,另外,整个clone过程中耗时最多的git repository 如下:
kernel_common.git kernel_msm.git platform_frameworks_base.git platform_prebuilt.git 其中 platform_prebuilt.git 是google 提供的预编译好的二进制文件,包含: 各种库文件,jar 包,可执行程序等等,如果只是阅读Android 源代码,这个git repository 可以不用clone.