作业如下:在android屏幕上面任意画线 2011-12-1 ,从网上看到了,参考了,修改了,成功了,给大家分享下
package feng.f121.drawline;//本人创建的包名,每人有每人的不同的包
import java.security.PublicKey;
import android.R.integer;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
//新建一个类继承View
public class Drawl extends View{
private int mov_x;//声明起点坐标
private int mov_y;
private Paint paint;//声明画笔
private Canvas canvas;//画布
private Bitmap bitmap;//位图
private int blcolor;
public Drawl(Context context) {
super(context);
paint=new Paint(Paint.DITHER_FLAG);//创建一个画笔
bitmap = Bitmap.createBitmap(480, 854, Bitmap.Config.ARGB_8888); //设置位图的宽高
canvas=new Canvas();
canvas.setBitmap(bitmap);
paint.setStyle(Style.STROKE);//设置非填充
paint.setStrokeWidth(5);//笔宽5像素
paint.setColor(Color.RED);//设置为红笔
paint.setAntiAlias(true);//锯齿不显示
}
//画位图
@Override
protected void onDraw(Canvas canvas) {
// super.onDraw(canvas);
canvas.drawBitmap(bitmap,0,0,null);
}
//触摸事件
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_MOVE) {//如果拖动
canvas.drawLine(mov_x, mov_y, event.getX(), event.getY(), paint);//画线
invalidate();
}
if (event.getAction()==MotionEvent.ACTION_DOWN) {//如果点击
mov_x=(int) event.getX();
mov_y=(int) event.getY();
canvas.drawPoint(mov_x, mov_y, paint);//画点
invalidate();
}
mov_x=(int) event.getX();
mov_y=(int) event.getY();
return true;
}
}
在Activity中
public class DrawLine extends Activity {
private Drawl bDrawl;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bDrawl=new Drawl(this);
setContentView(bDrawl);//将view视图放到Activity中显示
}
分享到:
相关推荐
`getBitmap()`方法返回`View`的背景位图,这样我们就可以在位图上画线了。 3. **绘制曲线**: 使用`Canvas`提供的`drawPath()`方法来绘制曲线。`Path`对象是用来存储路径数据的,可以包含直线、曲线等各种形状。你...
在Android开发中,"简单的Android画笔Demo"通常是指一个用于教学或实验目的的应用程序,它允许用户在屏幕上自由绘制并提供一些基本的功能,如撤销、改变画笔颜色和宽度。这个Demo是学习Android图形绘制和交互式UI...
通过SurfaceHolder,我们可以获取到Canvas对象,然后在上面进行绘制。 3. **绘制操作**: Canvas提供了如`drawRect()`, `drawCircle()`, `drawLine()`, `drawText()`等方法,用于绘制矩形、圆形、线条和文本。此外,...
在Android平台上,手绘图片处理画板是一种常见的应用,它允许用户通过触控屏幕来绘制图形、文字或者编辑已有的图像。"安卓手绘图片处理画板相关-Android橡皮擦和画笔.rar"这个压缩包文件包含了实现这一功能的核心...
通过以上这些技术,我们可以构建一个功能强大的Android绘画应用,用户可以在上面自由创作,保存并分享他们的作品。实际开发中,还需要考虑用户体验、颜色选择、撤销/重做功能、保存和分享图片等功能的实现。总的来说...
在Android开发中,"Android draw自动绘画功能"指的是在Android应用中实现用户可以自由绘制图形的功能。这通常涉及到Canvas、Path、Paint等核心绘图类的使用,以及触摸事件的处理。下面将详细讲解这些关键知识点。 1...
你可以把它想象成一块空白的画布,你可以在这上面绘制各种形状、线条、文本以及位图。Canvas提供了多种方法来绘制,比如drawRect()用于绘制矩形,drawCircle()用于绘制圆形,drawLine()用于绘制线段,drawText()用于...
它可以理解为一个画布,开发者可以在上面进行各种绘图操作,比如画线、画圆、填充颜色等。Canvas提供了多种绘图方法,如drawLine()用于画线,drawCircle()用于画圆,drawRect()用于画矩形,以及drawBitmap()用于显示...
1. **Android Canvas**: Android Canvas是Android图形系统的核心组件,它允许开发者在屏幕上绘制各种形状、线条、路径和图像。在画板应用中,Canvas用于接收绘图命令并将其呈现在屏幕上。 2. **Paint对象**: Paint...
你可以把它想象成一个画布,你在上面进行绘画操作。Canvas提供了各种方法,如drawRect(), drawCircle(), drawLine()等,用于在屏幕上绘制基本形状。 2. **Path对象**:Path是用来创建和绘制复杂形状的类。你可以...
在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它可以让我们实现丰富的视觉效果。本篇文章将探讨如何利用Canvas来创建一个扇形表盘式的进度条。这个过程涉及到PathEffect、Matrix以及shader等核心概念...
Canvas是画布,我们可以在上面绘制各种图形;Paint是画笔,定义了颜色、线条样式等绘制属性;Path则用于构建复杂的图形路径。 对于柱状图的绘制,我们可以使用View或者自定义ViewGroup来实现。首先,我们需要在...
Android自定义view实现车载可调整轨迹线 本文主要讲解了Android自定义view实现车载可调整轨迹线的知识点,总共分为以下几个部分: 一、自定义view实现车载可调整轨迹线的概述 在Android开发中,自定义view是实现...
此外,为了提供更丰富的绘画体验,还可以添加橡皮擦模式,将`Paint`的`color`设为透明,`xfermode`设为` PorterDuff.Mode.CLEAR`,这样用户就可以擦除已有的画线。 为了提供未上色的图画供孩子涂色,你需要在应用中...
使用`canvas.drawLine()`或`canvas.drawPath()`等方法可以实现画线和曲线。 4. **触摸事件处理**:在`onTouchEvent()`方法中,我们需要根据MotionEvent的动作类型(ACTION_DOWN, ACTION_MOVE, ACTION_UP等)来判断...
- Canvas是Android中的一个类,它提供了一个画布,开发者可以在上面执行各种绘图操作,如绘制线条、矩形、圆形、路径、文本等。 - Bitmap是Canvas的常见载体,我们通常在Bitmap上进行绘图,然后将其显示在View上。...
一个XML动画文件可以包含多个动画效果,如上面的`<set>`标签示例,其中每个子标签代表一个特定的动画类型(如`<scale>`, `<rotate>`, `<translate>`等),并设置相应的属性。 总之,Android二维动画提供了一套强大...
- `drawLine(float startx, float starty, float stopx, float stopy, Paint)`:画线。 - `drawBitmap(Bitmap, float left, float top, Paint)`:在画布上绘制位图。 - `drawText(String text, float x, float y,...
2. **实时绘制**:用户在触摸屏幕时,SignatureView会记录下每一个触摸点,然后根据这些点连接成线,形成连续的签名轨迹。 3. **清除功能**:为了方便用户修改或重签,SignatureView通常会提供一个“清除”按钮,...
在`SurfaceView`的`onTouchEvent`方法中监听用户的触摸事件,当用户触摸屏幕时记录下坐标点,然后在`Canvas`上绘制线条。 ```java public class SignatureView extends SurfaceView implements SurfaceHolder....