一. 运行效果以及源码
1.gif图效果

2.源码地址
MyDrawBoard
二.主要的思路
自定义View,在onDraw方法中利用Canvas的draw方法完成画板的各种操作。
三.使用到的技术点
1. 主要的内容
用到了下面的三个自己之前写的静态库。
① 底部按钮的控制器:自定义View-XLBottomView
② 画板的核心实现:自定义View-XLDrawBoard
③ 进度控制器:自定义View-XLSeekBar
2. 隐藏状态栏
参考文章:Android 显示、隐藏状态栏和导航栏
1 2 3 4 5 6 7 8 9 10 11 12 13
| <resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowFullscreen">true</item> </style>
</resources>
|
3. 保存图片到系统相册
参考文章:android将应用中图片保存到系统相册并显示 ,android 调用系统照相机拍照后保存到系统相册,在系统图库中能看到
讲解的可以但是我使用后没有效果的:Android保存图片到系统相册
注意:清单文件中需要加入读写权限,此操作不需要动态申请权限。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="swu.xl.mydrawboard">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:screenOrientation="sensor"> <intent-filter> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
</manifest>
|
4. 使用include标签引入布局
参考文章:使用include标签引入布局
5. 横竖屏切换
参考文章:Android 横竖屏切换总结