一. 运行效果以及源码

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>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<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 横竖屏切换总结