Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit dabf645

Browse files
committed
优化代码和导入流程,详见README
1 parent 753b81e commit dabf645

7 files changed

Lines changed: 130 additions & 56 deletions

File tree

‎README.md‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@
44

55
## 运行须知
66

7-
运行本代码的童鞋,需要先以 Library 的方式导入 [AndroidUtils](https://github.com/D-clock/AndroidUtils) , 因为本库部分代码依赖于 AndroidUtils 。请知悉!
7+
- 本库clone到本地后,直接以 moudle 形式导入即可运行;
8+
- 本库libs下有个**AndroidUtils.aar**的依赖包,是由[AndroidUtils](https://github.com/D-clock/AndroidUtils)代码编译生成;
9+
- 想要查看**AndroidUtils.aar**中的源代码,可以参考[这里](https://github.com/D-clock/Doc/blob/master/Android/%E4%B8%AA%E4%BA%BA%E6%94%B6%E8%97%8F/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8Baar%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81.md)
810

9-
## 最新更新(编辑于2016-05-22)
11+
## 最新更新(编辑于2016-05-27)
1012

11-
增加调用系统相机拍照适配方案的文章
13+
- 优化拍照实现;
14+
- 优化项目导入体验;
1215

1316
## 归档文章
1417

15-
[你需要知道的Android拍照适配问题.md](notes/你需要知道的Android拍照适配问题.md)
18+
[你需要知道的Android拍照适配问题](notes/你需要知道的Android拍照适配问题.md)
1619

1720
## 找我
1821

‎build.gradle‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,16 @@ android {
1919
}
2020
}
2121

22+
repositories {
23+
flatDir {
24+
dirs 'libs' //this way we can find the .aar file in libs folder
25+
}
26+
}
27+
2228
dependencies {
2329
compile fileTree(dir: 'libs', include: ['*.jar'])
2430
testCompile 'junit:junit:4.12'
25-
compile project(':androidutils')
31+
compile(name: 'AndroidUtils', ext: 'aar')
32+
//compile project(":AndroidUtils")
2633
compile 'com.android.support:appcompat-v7:23.2.1'
2734
}

‎libs/AndroidUtils.aar‎

23.5 KB
Binary file not shown.

‎src/main/java/com/clock/study/StudyApplication.java‎

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,14 @@
22

33
import android.app.Application;
44

5+
import com.clock.study.manager.FolderManager;
56
import com.clock.utils.crash.CrashExceptionHandler;
67

78
/**
89
* Created by Clock on 2016年5月13日.
910
*/
1011
public class StudyApplication extends Application {
1112

12-
/**
13-
* app在sd卡的主目录
14-
*/
15-
public final static String APP_MAIN_FOLDER_NAME = "AndroidStudy";
16-
/**
17-
* 本地存放闪退日志的目录
18-
*/
19-
public final static String CRASH_FOLDER_NAME = "crash";
20-
/**
21-
* app在sd卡存放图片的目录
22-
*/
23-
public final static String PHOTO_FOLDER_NAME = "photo";
24-
2513
@Override
2614
public void onCreate() {
2715
super.onCreate();
@@ -33,7 +21,7 @@ public void onCreate() {
3321
* 配置奔溃信息的搜集
3422
*/
3523
private void configCollectCrashInfo() {
36-
CrashExceptionHandler crashExceptionHandler = new CrashExceptionHandler(this, APP_MAIN_FOLDER_NAME, CRASH_FOLDER_NAME);
24+
CrashExceptionHandler crashExceptionHandler = new CrashExceptionHandler(this, FolderManager.getCrashLogFolder());
3725
Thread.setDefaultUncaughtExceptionHandler(crashExceptionHandler);
3826
}
3927
}

‎src/main/java/com/clock/study/activity/CapturePhotoActivity.java‎

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5-
import android.os.Environment;
6-
import android.os.PersistableBundle;
75
import android.support.v7.app.AppCompatActivity;
86
import android.util.Log;
97
import android.view.View;
108

119
import com.clock.study.R;
12-
import com.clock.study.StudyApplication;
1310
import com.clock.study.helper.CapturePhotoHelper;
14-
import com.clock.utils.common.SystemUtils;
11+
import com.clock.study.manager.FolderManager;
1512

1613
import java.io.File;
1714

@@ -35,12 +32,7 @@ protected void onCreate(Bundle savedInstanceState) {
3532
super.onCreate(savedInstanceState);
3633
setContentView(R.layout.activity_camera_take_photo);
3734

38-
File photoFolder = null;
39-
if (SystemUtils.mountedSdCard()) {
40-
File appFolder = new File(Environment.getExternalStorageDirectory(), StudyApplication.APP_MAIN_FOLDER_NAME);
41-
photoFolder = new File(appFolder, StudyApplication.PHOTO_FOLDER_NAME);
42-
}
43-
mCapturePhotoHelper = new CapturePhotoHelper(this, photoFolder);
35+
mCapturePhotoHelper = new CapturePhotoHelper(this, FolderManager.getPhotoFolder());
4436

4537
findViewById(R.id.iv_take_photo).setOnClickListener(this);
4638

@@ -58,12 +50,6 @@ protected void onSaveInstanceState(Bundle outState) {
5850

5951
}
6052

61-
@Override
62-
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
63-
Log.i(TAG, "onSaveInstanceState2");
64-
super.onSaveInstanceState(outState, outPersistentState);
65-
}
66-
6753
@Override
6854
protected void onRestoreInstanceState(Bundle savedInstanceState) {
6955
Log.i(TAG, "onRestoreInstanceState");
@@ -73,18 +59,6 @@ protected void onRestoreInstanceState(Bundle savedInstanceState) {
7359
mCapturePhotoHelper.setPhoto(mRestorePhotoFile);
7460
}
7561

76-
@Override
77-
protected void onRestart() {
78-
Log.i(TAG, "onRestart");
79-
super.onRestart();
80-
}
81-
82-
@Override
83-
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {
84-
Log.i(TAG, "onRestoreInstanceState2");
85-
super.onRestoreInstanceState(savedInstanceState, persistentState);
86-
}
87-
8862
@Override
8963
public void onClick(View v) {
9064
int viewId = v.getId();
@@ -96,12 +70,19 @@ public void onClick(View v) {
9670
@Override
9771
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
9872
Log.i(TAG, "requestCode: " + requestCode + " resultCode: " + resultCode + " data: " + data);
99-
if (requestCode == CapturePhotoHelper.CAPTURE_PHOTO_REQUEST_CODE && resultCode == RESULT_OK) {
73+
if (requestCode == CapturePhotoHelper.CAPTURE_PHOTO_REQUEST_CODE) {
10074
File photoFile = mCapturePhotoHelper.getPhoto();
10175
if (photoFile != null) {
102-
PhotoPreviewActivity.preview(this, photoFile);
76+
if (resultCode == RESULT_OK) {
77+
PhotoPreviewActivity.preview(this, photoFile);
78+
finish();
79+
} else {
80+
if (photoFile.exists()) {
81+
photoFile.delete();
82+
}
83+
}
10384
}
104-
finish();
85+
10586
} else {
10687
super.onActivityResult(requestCode, resultCode, data);
10788
}

‎src/main/java/com/clock/study/activity/PhotoPreviewActivity.java‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@
33
import android.app.Activity;
44
import android.content.Intent;
55
import android.graphics.Bitmap;
6-
import android.graphics.BitmapFactory;
7-
import android.graphics.drawable.BitmapDrawable;
8-
import android.net.Uri;
96
import android.os.Bundle;
10-
import android.provider.MediaStore;
117
import android.support.v7.app.AppCompatActivity;
12-
import android.util.Log;
138
import android.view.View;
149
import android.widget.ImageView;
1510

@@ -18,7 +13,6 @@
1813
import com.clock.utils.common.RuleUtils;
1914

2015
import java.io.File;
21-
import java.io.FileNotFoundException;
2216

2317
/**
2418
* 预览图片界面
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package com.clock.study.manager;
2+
3+
import android.os.Environment;
4+
5+
import java.io.File;
6+
7+
/**
8+
* 目录管理器
9+
* <p/>
10+
* Created by Clock on 2016年5月27日.
11+
*/
12+
public class FolderManager {
13+
14+
/**
15+
* 应用程序在SD卡上的主目录名称
16+
*/
17+
private final static String APP_FOLDER_NAME = "AndroidStudy";
18+
/**
19+
* 存放图片目录名
20+
*/
21+
private final static String PHOTO_FOLDER_NAME = "photo";
22+
/**
23+
* 存放闪退日志目录名
24+
*/
25+
private final static String CRASH_LOG_FOLDER_NAME = "crash";
26+
27+
28+
private FolderManager() {
29+
}
30+
31+
/**
32+
* 获取app在sd卡上的主目录
33+
*
34+
* @return 成功则返回目录,失败则返回null
35+
*/
36+
public static File getAppFolder() {
37+
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
38+
39+
File appFolder = new File(Environment.getExternalStorageDirectory(), APP_FOLDER_NAME);
40+
return createOnNotFound(appFolder);
41+
42+
} else {
43+
return null;
44+
}
45+
}
46+
47+
/**
48+
* 获取应用存放图片的目录
49+
*
50+
* @return 成功则返回目录名,失败则返回null
51+
*/
52+
public static File getPhotoFolder() {
53+
File appFolder = getAppFolder();
54+
if (appFolder != null) {
55+
56+
File photoFolder = new File(appFolder, PHOTO_FOLDER_NAME);
57+
return createOnNotFound(photoFolder);
58+
59+
} else {
60+
return null;
61+
}
62+
}
63+
64+
/**
65+
* 获取闪退日志存放目录
66+
*
67+
* @return
68+
*/
69+
public static File getCrashLogFolder() {
70+
File appFolder = getAppFolder();
71+
if (appFolder != null) {
72+
73+
File crashLogFolder = new File(appFolder, CRASH_LOG_FOLDER_NAME);
74+
return createOnNotFound(crashLogFolder);
75+
} else {
76+
return null;
77+
}
78+
}
79+
80+
/**
81+
* 创建目录
82+
*
83+
* @param folder
84+
* @return 创建成功则返回目录,失败则返回null
85+
*/
86+
private static File createOnNotFound(File folder) {
87+
if (folder == null) {
88+
return null;
89+
}
90+
91+
if (!folder.exists()) {
92+
folder.mkdirs();
93+
}
94+
95+
if (folder.exists()) {
96+
return folder;
97+
} else {
98+
return null;
99+
}
100+
}
101+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /