源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android实现简单的画画板实例代码

  • 时间:2021-05-18 10:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android实现简单的画画板实例代码
直接看代码,注释都写清楚了
[u]复制代码[/u] 代码如下:
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();   }  } }
简单的布局文件
[u]复制代码[/u] 代码如下:
<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"     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/button1"         android:id="@+id/iv"         android:layout_width="match_parent"         android:layout_height="match_parent"         /> </RelativeLayout>
再来个权限
[u]复制代码[/u] 代码如下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
上两张我画的高端大气上档次的图片。。。。 [img]http://files.jb51.net/file_images/article/201401/2014121171911645.jpg[/img] [img]http://files.jb51.net/file_images/article/201401/2014121172002729.jpg[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部