自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1265

原创 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 957

原创 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 447

原创 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 1061

原创 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 542

原创 监控setOutsideTouchable点击

dialog消失会执行setOnDismissListener, 点击OutsideTouch也相当于执行了dismiss,但是要单独监控OutsideTouch则需要写监听事件,fragment监听OutsideTouch的代码如下:1.在activity里:  /**     * 以下的几个方法用来,让fragment能够监听touch事件     */    pr

2017-08-14 09:47:38 624

原创 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 301

原创 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 6852 1

原创 SwipeToLoadLayout下拉刷新上拉加载

配置:首先在工程的build.gradle上面添加JitPack仓库allprojects { repositories { ... maven { url "https://jitpack.io" } }}其次,在模块的build.gradle上面添加依赖dependencies { compile 'com.github.Aspsi

2017-05-31 18:34:26 2302

原创 时间工具类

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 776

原创 RecycleView 滑动优化

在RecycleView设置是否滚动变量,然后在滚动监听器的onScrollStateChanged()方法中给boolean值赋值,看是否在滚动。 这样在我们使用这个适配器的时候,就可以根据滚动状态的不同来判断:比如正在滚动的时候就只显示内存缓存的图片,如果内存缓存中没有就显示一张默认图片;而如果没有在滚动就采用正常的图片加载方案去加载网络或者缓存中的图片。同理,影响RecycleView滑

2017-05-12 14:53:25 1662

原创 Glide使用,踩过的坑

1.Glide特点使用简单可配置度高,自适应程度高支持常见图片格式: Jpg png gif webp支持多种数据源:  网络、本地、资源、Assets 等高效缓存策略,支持Memory和Disk图片缓存默认Bitmap格式采用RGB_565内存使用至少减少一半生命周期集成, 根据Activity/Fragment生命周期自动管理请求高效处理Bitmap,使用Bit

2017-05-12 09:14:57 6285

原创 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 375

原创 谷歌官方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 350

原创 构建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 366

原创 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 1201

原创 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 2621

原创 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 701

原创 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 297

原创 py2exe 打包

from distutils.core import setupimport py2exeoptions = {"py2exe":            {   "compressed": 1,                  "optimize": 2,                   "bundle_files": 1   # 所有文件打包成一个exe文件  

2017-04-26 11:47:41 313

原创 编码问题

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 471

原创 生成二维码、识别二维码

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 822

原创 dagger2框架解析

Dagger2定义Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发。依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。Dagger 这个库的取名不仅仅来自它的本意“匕首”,同时也暗示了它的原理。Jake Wharton 在对 Dagger 的介绍中指出,Dagger 即 DAG-er,这里的 DAG 即数据结构中的 DAG

2017-04-26 09:28:15 583

原创 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 13002

原创 MVP代码示例

1.Contractspublic interface DetailContracts {    interface View extends BaseView{        /**         * 是否可以进行短信、电话、语音电话         *         */         void showChatEnable();

2017-04-25 11:09:09 546

转载 MVP模式在Android项目中的使用

什么是MVP  MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。  模型(Model):负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等;  视图(View):负责界面数据的展示,与用户进行交互;  主持人(Presenter):相当于协调者,是模型与视图之间的桥梁,将模型与视图分离开来。

2017-04-25 09:52:57 283

原创 图片处理,圆形圆角描边

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 1485

原创 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 480

轮播图demo,3d效果

轮播图demo,3d效果,定时滚动图片,显示3d画廊效果。

2018-05-08

下拉刷新demo

下拉刷新的demo,只是下拉刷新,能结合webview\listview各个控件。

2018-05-08

bcprovmutilpush

aoe 的sdk推送push,十分好用 ,支持各种指定的push。

2018-05-03

ssh搭建教程

手把手教你搭建ssh框架,十分有用,谁用谁知道

2012-10-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除