zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android--简单的画画板实例代码

2023-09-14 09:00:57 时间
 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();     }   /span   
span  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 /span   
span  uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/ /span   



转载:http://blog.csdn.net/chaoyu168/article/details/51149273


Wu_Being博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢! 《Android JNI的实例代码流程图》: http://blog.csdn.net/u014134180/article/details/78125723
Android组件化开发(七)--从零开始教你分析项目需求并实现 前面几篇文章我们封装了几个组件化功能组件:包括:**网络请求组件,图片加载请求组件,应用保活组件,音乐播放组件封装。** 每个组件都可以直接拿到自己项目中使用,当然还需根据自己项目要求进行优化。
Android组件化开发(六)-- 短视频播放组件封装 前面几篇文章我们封装了几个组件化功能组件: 包括:`网络请求组件`,`图片加载请求组件`,`应用保活组件`,`音乐播放组件封装`。 每个组件都可以直接拿到自己项目中使用,当然还需根据自己项目要求进行优化。
Android组件化开发(五)--完整版音乐播放组件的封装 前面几篇系列文章我们讲解了`组件化开发`中几个常用功能组件的开发,包括:`网络请求组件`,`图片加载请求组件`,`应用保活组件`。今天我们来封装一个`音乐播放组件`。
Android组件化开发(四)--进程保活组件的封装 前面文章我们封装了网络请求组件`lib_nework`和图片加载组件`lib_image_loader`,今天我们来封装一个进程保活的组件`lib_pull_alive`