积跬步

Just do IT Now.


  • Home

  • Tags

  • Categories

  • Archives

  • Search

自定义接口

Posted on 2021-01-29 | In Java代码片段

自定义接口实现类似于枚举的功能

1
2
3
4
5
6
7
8
9
10
11
import android.support.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.SOURCE)
@IntDef({PageTypeAnn.HOME_PAGE, PageTypeAnn.FOUND_PAGE, PageTypeAnn.CUSTOM_PAGE})
public @interface PageTypeAnn{
int HOME_PAGE = 0;
int FOUND_PAGE = 1;
int CUSTOM_PAGE = 2;
}

@Retention限制存在的时间

@IntDef限制传入的数据。(@StringDef、@LongDef)

Read more »

第三方-Retrofit

Posted on 2021-01-22 | In Android

Retrofit

Retrofit2:一个网络请求的适配器,将一个基本的Java接口通过动态代理的方式翻译成一个HTTP请求,并通过OkHttp去发送请求。此外它还具有强大的可扩展性,支持各种格式转换以及RxJava。

参考链接

Read more »

Android进阶解密

Posted on 2021-01-18 | In Android

Android源码、Android系统启动、ClassLoader

Read more »

Spring Boot

Posted on 2020-12-17 | In 后端

相关链接

Spring Boot文档

快速构建Spring boot项目的网站

Read more »

微信小程序代码片段

Posted on 2020-12-03 | In 微信小程序

代码片段记录

下拉刷新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
onPullDownRefresh:function() {
// 监听该页面用户下拉刷新事件
// 可以在触发时发起请求,请求成功后调用wx.stopPullDownRefresh()来结束下拉刷新
var that = this;
console.log('下拉拉拉')
wx.showNavigationBarLoading();//在当前页面显示导航条加载动画
//wx.startPullDownRefresh();
wx.hideNavigationBarLoading();//隐藏导航条加载动画。
wx.stopPullDownRefresh();//停止当前页面下拉刷新。
that.setData({
homeDataList: [],
pageIndex: 1,
showEndTxt: false
})
common.checkThreeRdSessionTimeOut(that);
},
Read more »

Quartz

Posted on 2020-12-02 | In 后端

Spring quartz 时间配置规则

格式: [秒] [分] [小时] [日] [月] [周] [年]

序号 说明 是否必填 允许填写的值 允许的通配符
1 秒 是 0-59 , - * /
2 分 是 0-59 , - * /
3 小时 是 0-23 , - * /
4 日 是 1-31 , - * ? / L W
5 月 是 1-12 or JAN-DEC , - * /
6 周 是 1-7 or SUN-SAT , - * ? / L #
7 年 否 empty 或 1970-2099 , - * /
Read more »

安卓-JNI、NDK

Posted on 2020-10-14 | In Android

NDK

NDK 全称是 Native Development Kit,是一组可以在 Android 应用中编写实现 C/C++ 的工具,可以在项目用自己写源代码构建,也可以利用现有的预构建库。

用途

Read more »

防抖动、防快速点击

Posted on 2020-10-14 | In Android代码片段

工具类:NoDoubleClickListener防止过快双击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public abstract class NoDoubleClickListener implements View.OnClickListener{

public static final int MIN_CLICK_DELAY_TIME = 1000;
private long lastClickTime = 0;

@Override
public void onClick(View v) {
long currentTime = Calendar.getInstance().getTimeInMillis();
if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME){
lastClickTime = currentTime;
onNoDoubleClick(v);
}
}

public abstract void onNoDoubleClick(View v);
}

使用:view.setOnClickListener(new NoDoubleClickListener(){})

Read more »

工具-CrashHandler全局捕获异常

Posted on 2020-10-14 | In Android代码片段

CrashHandler全局捕获异常

定义捕获异常的代码

CrashHandler.java

Read more »

图片相关

Posted on 2020-10-14 | In 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
private void uploadHeadPortrait(Uri imgUri) {
compressPic(imgUri);
}

//压缩图片
private void compressPic(Uri uri){
ImageCompress compress = new ImageCompress();
ImageCompress.CompressOptions options = new ImageCompress.CompressOptions();
// options.uri = Uri.fromFile(new File(sourcePath));
options.uri = uri;
options.maxWidth=Constants.RESIZEBITMAP_WIDTH;
options.maxHeight=Constants.RESIZEBITMAP_HEIGHT;
Bitmap bitmap = compress.compressFromUri(ManagerJJActivity.this, options);
saveCompressedPic(bitmap, uri);
}

//bitmap图片保存到手机指定路径
private void saveCompressedPic(Bitmap bitmap, Uri uri){
boolean isSaved = BitmapUtils.setBitmapToFile(bitmap, Constants.COMPRESSED_PIC_PATH);
if (isSaved){//保存成功用压缩后的图片进行上传
Uri uri1 = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "compress.jpg"));
uploadPic(uri1);
}else {//未保存成功,用原图片进行上传
uploadPic(uri);
}
}

//从指定位置捞出来图片进行上传
private void uploadPic(Uri imgUri){
if (null == loadingBar) {
loadingBar = LoadingBar.make(findViewById(R.id.activity_manager_jj_rootlayout), new CustomLoadingFactory());
}
if (null != loadingBar) {
loadingBar.show();
loadingBar.setOnClickListener(null);
}

final String filepath;
if (imgUri.toString().startsWith("file")) {
filepath = imgUri.getPath();
} else {
filepath = UiHelper.getFilePathFromContentUri(imgUri, getContentResolver());
}

//采用okhttp3来进行网络请求
String url = UrlManager.URL_IMAGEUPLOAD;
OkHttpClient mOkHttpClient = new OkHttpClient.Builder()
.connectTimeout(Constants.OKHTTPS_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS)
.readTimeout(Constants.OKHTTPS_READ_TIMEOUT, TimeUnit.MILLISECONDS)
.writeTimeout(Constants.OKHTTPS_WRITE_TIMEOUT, TimeUnit.MILLISECONDS)
.build();

RequestBody formBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
// .addFormDataPart("title","Square Logo")
.addFormDataPart("file", "logo-square.png", RequestBody.create(MEDIA_TYPE_PNG, new File(filepath))).build();
Request request = new Request.Builder().url(url).post(formBody).build();
Call call = mOkHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
dialogCancel();

Message msg = new Message();
msg.what = INFO_WHAT;
msg.obj = Constants.UPLOAD_FAIL;
myHandler.sendMessage(msg);
}

@Override
public void onResponse(Call call, Response response) throws IOException {
dialogCancel();
String str = response.body().string();
Log.i(Constants.TAG, str);

JSONObject jsonObject = JSONObject.parseObject(str);
filePath = (String) jsonObject.get("data");
runOnUiThread(new Runnable() {
@Override
public void run() {
Message msg = new Message();
msg.what = INFO_WHAT;
msg.obj = Constants.UPLOAD_SUCCES;
myHandler.sendMessage(msg);
}
});
}

});
}

上面用到底下的图片压缩、Bitmap处理:变圆、读取、存、缩放等

Read more »

Servlet生命周期

Posted on 2020-09-25 | In 后端

Servlet生命周期

什么是 Servlet?

Servlet 是一个 Java 编写的程序,此程序是在服务器端运行的,是按照 Servlet 规范 编写的一个 Java 类。

Read more »

安卓大厂面试题

Posted on 2020-09-25 | In 678

2020Android面经,历时一个半月,斩获3个大厂offer

常考知识点

Java

Read more »
<1…121314…24>

285 posts
21 categories
44 tags
E-Mail CSDN
0%
© 2018 — 2025 阿炳
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4