- 博客(28)
- 资源 (4)
- 收藏
- 关注
原创 android webView https 5.0以上兼容5.0以下
private SSLContext sslContext; public MyWebViewClient() { prepareSslPinning(); } @Override public WebResourceResponse shouldInterceptRequest(final WebVie...
2018-05-30 18:30:48
1338
原创 android中https 双向认证
之前用的http,一切正常,自从改为https,发现好多问题,在此写了https认证的步骤以及怎么解决其中遇到的难点。首先需要两份证书,服务器的证书ca.cer 和客户端证书client.bks。当初给到客户端的是 client.p12,p12证书安卓也能支持。证书有多种格式,如cer bks p12 jks, 涉及的证书转化推荐一个转化工具portecle,下载地址:https://source...
2018-05-12 17:56:52
1236
原创 3D轮播图与外层ViewPager滑动冲突问题
场景:app主界面是一个具有4个fragment的viewPager,第一个fragment中有一个轮播图,轮播图显示3个具有3D效果和投影的图片,中间大图,两侧显示图的一点点,也就是画廊效果,图片可点击,点击进入h5。轮播图布局:<LinearLayout android:id="@+id/ll_viewpager" android:clipChildren="f
2017-12-22 11:19:24
503
原创 ViewPage 轮播图优化,解决oom和白屏问题
public class NativePagerAdapter extends PagerAdapter { private List mList = new ArrayList<>(); private Context mContext; private MyItemClick mMyItemClick; public interface MyItemClick
2017-12-22 11:07:23
1147
原创 SharePreferenceUtils 工具类
public class SharePreferenceUtils { private static final String DEFAULT_FILE_NAME="sp_yuliao"; /** * 保存数据到sp的方法,根据value类型调用不同的保存方法,默认用的sp的文件名字为DEFAULT_FILE_NAME * @param context
2017-09-05 18:58:01
757
原创 监控setOutsideTouchable点击
dialog消失会执行setOnDismissListener, 点击OutsideTouch也相当于执行了dismiss,但是要单独监控OutsideTouch则需要写监听事件,fragment监听OutsideTouch的代码如下:1.在activity里: /** * 以下的几个方法用来,让fragment能够监听touch事件 */ pr
2017-08-14 09:47:38
698
原创 android 水波纹
<Button android:layout_below="@+id/ll_empty" android:id="@+id/btn_exchange_card" android:layout_width="match_parent" android:layout_height="48dp" android:layout_marginLeft="16dp"
2017-07-21 11:27:16
358
原创 android 字符长度限制,中文2个字符 ,英文1个字符
比如最大10个字符,若超过10个,则显示9或者8个字符加省略号.啊啊啊啊啊哎哎哎啊...哎哎哎啊a...aaaaaaaa...public class CalTextLength {public static String handleText(String str, int maxLen) { if (TextUtils.isEmpty(str)) {
2017-06-13 09:39:12
7210
原创 SwipeToLoadLayout下拉刷新上拉加载
配置:首先在工程的build.gradle上面添加JitPack仓库allprojects { repositories { ... maven { url "https://jitpack.io" } }}其次,在模块的build.gradle上面添加依赖dependencies { compile 'com.github.Aspsi
2017-05-31 18:34:26
2382
原创 时间工具类
public class TimeUtil { // 时间格式模板 /** yyyy-MM-dd */ public static final String TIME_FORMAT_ONE = "yyyy-MM-dd"; /** yyyy-MM-dd HH:mm */ public static final String TIME_FORMAT_TWO =
2017-05-26 11:22:55
1016
原创 RecycleView 滑动优化
在RecycleView设置是否滚动变量,然后在滚动监听器的onScrollStateChanged()方法中给boolean值赋值,看是否在滚动。 这样在我们使用这个适配器的时候,就可以根据滚动状态的不同来判断:比如正在滚动的时候就只显示内存缓存的图片,如果内存缓存中没有就显示一张默认图片;而如果没有在滚动就采用正常的图片加载方案去加载网络或者缓存中的图片。同理,影响RecycleView滑
2017-05-12 14:53:25
1781
原创 Glide使用,踩过的坑
1.Glide特点使用简单可配置度高,自适应程度高支持常见图片格式: Jpg png gif webp支持多种数据源: 网络、本地、资源、Assets 等高效缓存策略,支持Memory和Disk图片缓存默认Bitmap格式采用RGB_565内存使用至少减少一半生命周期集成, 根据Activity/Fragment生命周期自动管理请求高效处理Bitmap,使用Bit
2017-05-12 09:14:57
6482
原创 RxAnroid异步工具封装
public class RxAsyncHelper { Observable observable; public RxAsyncHelper(final T t){ observable = Observable.create(new OnSubscribe() { @Override public void
2017-05-11 11:45:08
423
原创 谷歌官方MVP架构学习
Contract封装了View和Presenter public interface TasksContract { interface View extends BaseView { void setLoadingIndicator(boolean active); void showTasks(List tasks);
2017-05-11 11:25:30
397
原创 构建BaseActivity BaseFragment
1.BaseActivity:public abstract class BaseActivity extends AppCompatActivity { private Unbinder mUnbinder; @Override protected void onCreate(@Nullable Bundle savedInstanc
2017-05-11 11:06:57
419
原创 OkHttp网络连接封装工具类以及json转换类
public class OkHttpUtils { private static final String TAG = "OkHttpUtils"; private static OkHttpUtils mInstance; private OkHttpClient mOkHttpClient; private Handler mHan
2017-05-03 21:59:24
1255
原创 Android开发:顶部&底部Tab导航栏实现(TabLayout+ViewPager+Fragment)
添加依赖包:compile‘com.android.support:design:22.2.0‘XML<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_he
2017-05-02 21:59:06
2700
原创 TabHost、RadioGroup、ToolBar实现底部菜单导航
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo
2017-05-02 20:16:15
749
原创 FTP上传下载
# coding:utf-8from ctypes import *import osimport sysimport ftplibclass myFtp: ftp = ftplib.FTP() bIsDir = False path = "" def __init__(self, host, port='21')
2017-04-26 11:52:24
346
原创 py2exe 打包
from distutils.core import setupimport py2exeoptions = {"py2exe": { "compressed": 1, "optimize": 2, "bundle_files": 1 # 所有文件打包成一个exe文件
2017-04-26 11:47:41
373
原创 编码问题
python默认是ascill,是不能表示中文的,若涉及encode, 首选要decode成 unicode ,1:print "哈哈".decode('utf-8').encode('utf-8')2:a=u'哈哈'print a.encode('utf-8')3:#encoding=utf8import sysreload(sys)sys.setdefault
2017-04-26 11:45:33
565
原创 生成二维码、识别二维码
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button btn_create,btn_scanner; private ImageView imageView; private EditText et; privat
2017-04-26 09:41:04
892
原创 dagger2框架解析
Dagger2定义Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发。依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。Dagger 这个库的取名不仅仅来自它的本意“匕首”,同时也暗示了它的原理。Jake Wharton 在对 Dagger 的介绍中指出,Dagger 即 DAG-er,这里的 DAG 即数据结构中的 DAG
2017-04-26 09:28:15
661
原创 anroid边框阴影-圆角阴影-渐变阴影
anroid给边框加阴影只能对内阴影,没有给边框对外加阴影,在自定义shape中增加一层或多层,并错开,即可显示阴影效果。1.圆角阴影效果(内阴影),不能加渐变色 <gradient android:type="linear" android:centerX="0.5" android:centerY="0.5" android:angle="90" android:star
2017-04-25 22:16:36
13165
原创 MVP代码示例
1.Contractspublic interface DetailContracts { interface View extends BaseView{ /** * 是否可以进行短信、电话、语音电话 * */ void showChatEnable();
2017-04-25 11:09:09
609
转载 MVP模式在Android项目中的使用
什么是MVP MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。 模型(Model):负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等; 视图(View):负责界面数据的展示,与用户进行交互; 主持人(Presenter):相当于协调者,是模型与视图之间的桥梁,将模型与视图分离开来。
2017-04-25 09:52:57
320
原创 图片处理,圆形圆角描边
1.圆形描边public static Bitmap getCircleCornerBitmap(Bitmap source,int strokeWidth){ if (source == null || source.isRecycled()) { return null; } int srcBitmapWidth = so
2017-04-24 15:19:54
1578
原创 android Handler.post定时器
Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnable(){ @Override public void run() { // TODO Auto-generated method st
2017-04-21 11:14:14
544
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人