Android多媒体之画画板开发案例分享

Android多媒体之画画板开发案例分享,第1张

概述先看看效果:其实画画板的原理很简单,就是首先记录下按下屏幕的点,然后每移动一下就让这两次移动的点连线,周而复始,图像就由很多条直线构成了。

先看看效果:

其实画画板的原理很简单,就是首先记录下按下屏幕的点,然后每移动一下就让这两次移动的点连线,周而复始,图像就由很多条直线构成了。

核心代码 :

public class MainActivity extends Activity implements OnClickListener,OnSeekbarchangelistener {  private VIEw red_vIEw,green_vIEw,blue_vIEw;   //控制画笔颜色的三块区域  private Seekbar seekbar;    //控制画笔粗细的拖动条  private ImageVIEw iv;    private Bitmap bitmap,backgroud;  //画纸和背景图  private Canvas canvas;       //画布  private Paint paint;        //画笔  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    red_vIEw = findVIEwByID(R.ID.red_vIEw);    green_vIEw = findVIEwByID(R.ID.green_vIEw);    blue_vIEw = findVIEwByID(R.ID.blue_vIEw);    seekbar = (Seekbar) findVIEwByID(R.ID.seekbar);    iv = (ImageVIEw) findVIEwByID(R.ID.iv);    iv.setimageResource(R.drawable.bg);    //拿到背景图    backgroud = BitmapFactory.decodeResource(getResources(),R.drawable.bg);    //拿到和背景图一样大小的画纸    bitmap = Bitmap.createBitmap(backgroud.getWIDth(),backgroud.getHeight(),backgroud.getConfig());    //把画纸固定在画布上    canvas = new Canvas(bitmap);    //拿到画笔    paint = new Paint();    paint.setcolor(color.BLACK);//设置画笔颜色为黑色    paint.setStyle(Style.stroke);//设置画笔为空心    //添加处理规则    Matrix matrix = new Matrix();    //照着背景图画    canvas.drawBitmap(backgroud,matrix,paint);    red_vIEw.setonClickListener(this);    green_vIEw.setonClickListener(this);    blue_vIEw.setonClickListener(this);    seekbar.setonSeekbarchangelistener(this);    iv.setontouchListener(new OntouchListener() {      float startX;      float startY;      @OverrIDe      public boolean ontouch(VIEw v,MotionEvent event) {        switch (event.getAction()) {        //获取按下时的坐标        case MotionEvent.ACTION_DOWN:          startX = event.getX();          startY = event.getY();          break;        //获取移动时的坐标        case MotionEvent.ACTION_MOVE:          float stopX = event.getX();          float stopY = event.getY();//          // 在开始和结束坐标间画一条线          canvas.drawline(startX,startY,stopX,stopY,paint);          //实时更新坐标(通过不断画线)          startX = event.getX();          startY = event.getY();          iv.setimageBitmap(bitmap);          break;        case MotionEvent.ACTION_UP:          break;        default:          break;        }        return true;      }    });  }  @OverrIDe  public voID onClick(VIEw v) {    switch (v.getID()) {    case R.ID.red_vIEw:      //当点击红色区域的时候设置画笔颜色为红色      paint.setcolor(color.RED);      break;    case R.ID.green_vIEw:      //当点击绿色区域的时候设置画笔颜色为绿色      paint.setcolor(color.GREEN);      break;    case R.ID.blue_vIEw:      //当点击蓝色区域的时候设置画笔颜色为蓝色      paint.setcolor(color.BLUE);      break;    default:      break;    }  }  //拖动条的值改变的时候调用  @OverrIDe  public voID onProgressChanged(Seekbar seekbar,int progress,boolean fromUser) {  }  //开始拖动时调用  @OverrIDe  public voID onStartTrackingtouch(Seekbar seekbar) {  }  //停止拖动时调用  @OverrIDe  public voID onStopTrackingtouch(Seekbar seekbar) {    int progress = seekbar.getProgress();//拖动条默认的最大值为100    paint.setstrokeWIDth(progress/10f);//控制画笔的粗细范围(0-10)  }}

试试觉得很简单呢,赶紧试试吧!

又到周五了,希望大家有个快乐周末,谢谢大家一直对小编的支持,小编一定会再接再厉,为大家分享更多精彩的文章。

总结

以上是内存溢出为你收集整理的Android多媒体之画画板开发案例分享全部内容,希望文章能够帮你解决Android多媒体之画画板开发案例分享所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存