这期内容当中小编将会给大家带来有关Android开发中项目实现一个画板功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
效果图如下
XML布局代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.tomes.paint.MainActivity" > <ImageView android:id="@ id/iv_drawingBoard" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/bg"/> </RelativeLayout>
Java代码
public void init() { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg); copyBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); paint = new Paint(); canvas = new Canvas(copyBitmap); Matrix matrix=new Matrix(); canvas.drawBitmap(bitmap, matrix, paint); imageView = (ImageView) findViewById(R.id.iv_drawingBoard); imageView.setImageBitmap(copyBitmap); imageView.setOnTouchListener(new OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: startX=event.getX(); startY=event.getY(); break; case MotionEvent.ACTION_MOVE: float currentX=event.getX(); float currentY=event.getY(); canvas.drawLine(startX, startY, currentX, currentY, paint); imageView.setImageBitmap(copyBitmap); startX=currentX; startY=currentY; break; case MotionEvent.ACTION_UP: break; } return true; } }); }
上述就是小编为大家分享的Android开发中项目实现一个画板功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。