- 博客(75)
- 资源 (4)
- 收藏
- 关注

原创 仿微信朋友圈发表图片拖拽和删除功能
仿微信朋友圈发表图片拖拽和删除功能,使用ItemTouchHelper实现拖拽和删除功能,并解决图片OOM,从分析到实现代码。
2017-07-13 14:58:06
18349
5

原创 Mac安装android studio后卡在building gradle project info的解决方法
1.找到.gradle目录,一般在/User/<用户名>/下; macOS Sierra 10.12.3可以直接快捷键 shift+command+. 显示隐藏的文件即可看到.gradle文件夹。2.进入.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9文件夹下,删除.part文件3.去gradle网站:https://
2017-06-14 10:12:58
8772

原创 扫盲Android Studio 仓库jCenter并发布自己的开源库
AS从哪里获取到开源库首先我们在使用第三方开源库时,直接在项目的 gradle 文件中添加这样一行代码: compile 'com.jakewharton:butterknife:7.0.1' 添加完之后,你会发现依懒库中确实出现了这个库文件,那么 AS 具体是去哪里下载这个库的呢?jcenter细心的话会发现项目根目录的 gradle 文件里面有这样的配置allprojects { r
2017-04-14 17:11:52
12833
1

原创 Tinker接入小白教程
在这里先给大家拜个晚年,虽然说新已经过了。本文是今天第一篇文章,已经有好长时间没总结了,算了给2017开个好头吧。之前一直搞不懂什么是热修复?其实热修复就是在应用不用重新安装的情况下更新应用。最多的应用场景就是用来修复bug。因为重新发包的代价太大了,所以我们可以选择用热修复来修复bug!需要注意的一点是Tinker在1.7.6版本以及之后的版本不支持加固后的动态更新,所以用了这个就不用用其他厂商
2017-02-07 18:19:51
5753
2

原创 material design效果Dialog并修改颜色
1,引用包compile 'com.android.support:appcompat-v7:23.4.0'2,调用V7包下的AlertDialognew AlertDialog.Builder(MainActivity.this).setTitle("单选框").setSingleChoiceItems( new String[]{"I
2016-10-27 17:43:36
7791

原创 TabLayout多种使用方式
一、使用方式(1)、导入兼容包compile 'com.android.support:design:23.4.0'(2)新建Activity,自定义Fragment,资源文件public class TabLayoutActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListene
2016-10-11 18:11:44
3901

原创 极光推送-点击通知栏跳到指定页面
在MyReceiver接收器里面,添加以下代码:if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { Log.d(TAG, "[MyReceiver] 用户点击打开了通知"); //打开自定义的Activity
2016-10-11 10:12:32
24843

原创 RecyclerView另类实现高度固定
1、设置好宽高度android:layout_width="match_parent"android:layout_height="124dp"2、在代码中设置RecyclerView不可滑动rcv.setNestedScrollingEnabled(false);3、使用最新版本的RecyclerView是可以解决自适就高度的
2016-07-26 09:22:17
7217
原创 mac ssh记住密码
以下方法只针对已生成ssh密码的情况1、cd ~/.ssh2、cp id_rsa.pub authorized_keys3、有无默认端口号:(1)默认端口号为22:ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip(2)指定端口号为2212:ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2212 user@ip4、输入密码即可...
2018-12-24 10:47:37
3986
原创 使用ItemTouchHelper拖拽时两个item跟着动解决方法
使用ItemTouchHelper时,当RecyclerView的item数只有三个时,拖动第二个item并拖出边界时,第三个item就会往右边动(按照正常逻辑,第三个item是不动的)。如图所示: 在排除了很多种可能的情况下,我试着改了下RecyclerView的布局,发现以下规律: 当 android:layout_height=”wrap_content” 时,就会出现两个item跟着
2017-06-22 14:24:11
2202
原创 Android动画分类(一)
1、官方分类,三种:属性动画(Android 3.0之后才添加)、视图动画(分为逐帧动画和补间动画)、Drawable 动画2、属性动画/
2017-03-04 15:47:22
1280
原创 git使用容易忽略的问题
一、Tag没有同步。我们在发布版本的时候,往往会打上一个tag,用来标识哪个版本!(1)、在远程仓库打标签,就是可视化的操作去添加,比如github上面的。这时候本地就看不到在运程仓库的标签,我们可以使用这个命令将远程标签更新到本地来!$ git fetch origin --tags(2)、在本地打完标签,也是需要将本地的推送到远程上面去的!本地打标签命令:$ git ta
2017-02-09 16:58:22
662
原创 基于OkHttpUtils自己实现一个检查升级软件功能
一、思路先请求后台接口,得到服务器的最新软件版本,然后和软件本身的版本进行对比,如果有最新的版本,则提示用户点击按钮进行下载,否则提示该版本为最新版本!逻辑是不是很简单哈~。我们现在主要的实现是在有最新版本时去下载更新!我们使用的网络框架是基于OkHttpUtils:https://github.com/hongyangAndroid/okhttputils二、上代码下载apk文件肯定
2016-12-29 16:52:15
1411
1
原创 我的第一个SDK
一,创建Module编写代码1,右击项目,选择module2,选择类型3,填写包名等信息,finish完成4,编写MyActivity及布局文件,导入资源MyActivity:public class MyActivity extends AppCompatActivity { @Override protected void on
2016-12-06 15:31:34
534
原创 Android 5.0以上Button去掉阴影
1,在Button标签中直接添加以下属性style=”?android:attr/borderlessButtonStyle”2,有的Button的属性已经抽成style,此时直接在style时添加上parent:name="btn_right_angle_bg_text" parent="@style/Widget.AppCompat.Button.Borderless"
2016-11-30 16:07:39
7870
原创 Metial Design首次使用
1、修改dialog颜色,见文章:metial design效果dialog并修改颜色2、给button,imagebutton等控件添加波纹效果:只需要在xml文件的控件属性中添加上android:background=" ?attr/selectableItemBackground "(只在控件大小范围内产生波纹)android:background=" ?attr/selecta
2016-11-28 17:54:59
1423
原创 selector的最佳用法
在进行UI布局的时候,我们经常会遇到这样的布局:如图这个包括背景的两种状态(分按下和没有按下)和圆角,之前我一直用的就是,先把圆角和背景写到一个drawable,分别写两个,然后再写一个selecor,这样做有点xx其实有一种更简单的写法如下:
2016-10-31 11:37:26
528
原创 TextView代码中的设置部分字体的颜色
mTextView = (TextView) findViewById(R.id.hello); SpannableStringBuilder builder = new SpannableStringBuilder(mTextView.getText().toString()); builder.setSpan(new StyleSpan(Typeface.BOL
2016-10-27 17:24:39
735
原创 Android Studio 导入.so文件
在工程gradle文件中配置apply plugin: 'com.android.application'android {// 导入.so文件 sourceSets { main { jniLibs.srcDirs = ['libs']//libs文件夹 } }}
2016-10-24 17:31:54
398
原创 解决65535的方法
L及以上的版本就不会出现65535问题(1),在项目的gradle中做以下配置apply plugin: 'com.android.application'android { defaultConfig { multiDexEnabled true }}这里就不用再添加依懒了,已经自动添加进来了(2),一般我们都会重写Application,所以
2016-10-24 15:51:58
5180
原创 读Android性能优化之典范笔记
文章地址:点击打开链接一,渲染(1)移除Window默认的Background;(2)移除XML布局文件中非必需的Background;(3)按需显示占位背景图片;(4)通过clipreset(5)尽量使用RelativeLayout替代LinearLayout,通过测试得知RelativeLayout的性能高过LinearLayout二、运算(1)能用fore
2016-10-18 12:00:24
266
原创 内存泄漏及解决方案
1,内存泄漏:一般内存泄漏(traditional memory leak)的原因是:当该对象的所有引用都已经释放了,对象仍未被释放。(译者注:Cursor忘记关闭等)逻辑内存泄漏(logical memory leak)的原因是:当应用不再需要这个对象,当仍未释放该对象的所有引用。2,产生内存泄漏原因(1)将Activity或View等对象定义成静态变量,如果这个静态变量在A
2016-10-17 16:08:46
328
原创 Handler的多种使用方法
在子线程中更新UI线程1,通过发消息private Button btn;private Handler mHandler = new MyHandler(this);private static class MyHandler extends Handler { private WeakReference mWeakReferenceActivity; pub
2016-10-15 13:59:03
958
原创 仿微信右滑SwipeBackLayout的使用
github地址:点击打开链接1、添加依赖:compile 'me.imid.swipebacklayout.lib:library:1.0.0'2、基类Activity继承SwipeBackActivityBaseActivity extends SwipeBackActivity3、不需要右滑的Activity在onCreate中添加以下语句即可:g
2016-10-14 15:59:51
5185
原创 基类的设计
注:可以链式继承FragmentActivity1,将一些网络错误,空数据等共同布局添加到基类里面来2,友盟统计数据的逻辑3,保存Activity栈4,EventBus注册和反注册(好像花费时间比较长,可以提供一个方式在实现类里面来控制注册和反注册)5,用户登录失效时重新登录6,ButterKnife的绑定和解绑7,Presenter的绑定和解绑(MVP架构)
2016-10-13 10:34:31
561
原创 api23及以上应用请求权限的解决方案
private void populateAutoComplete() { if (!mayRequestContacts()) { return; } // TODO: 2016/10/8 已获得权限时,需要完成以下任务}/** * 检查并请求权限 * @return true 为已获取到该权限,false为未获得权限 */private
2016-10-08 18:03:26
2687
原创 友盟多渠道打包总结
1,利用AS图形化打包(每个包都要编译,所花时间长):点击打开链接2,利用python脚本打包(只需编译一个包,其他不用编译,秒出):(1),打包原理:点击打开链接 代码下载:点击打开链接(2),安装python:点击打开链接(3),python使用:点击打开链接
2016-09-28 11:50:37
664
原创 代码无弹窗判断设备是否root
public class RootUtil { private final static String TAG = "RootUtil"; /** 判断手机是否root,不弹出root请求框 */ public static boolean isRoot() { String binPath = "/system/bin/su"; String xBin
2016-09-26 17:51:33
464
原创 Android判断设备是否为模拟器
public class AntiEmulator { private static String[] known_pipes = { "/dev/socket/qemud", "/dev/qemu_pipe" }; private static String[] known_qemu_drivers = {
2016-09-26 17:49:08
4034
原创 Fresco按比例缩放图片
<com.facebook.drawee.view.SimpleDraweeView android:id="@+id/story_image" android:layout_width="fill_parent" android:layout_height="wrap_content" fresco:pressedStateOverlayImage="@color
2016-08-01 10:54:42
2312
原创 TextView代码中设置颜色大小
textViews[i].setTextColor(Color.parseColor("#3b3e40"));textViews[i].setTextSize(TypedValue.COMPLEX_UNIT_DIP,13);
2016-07-27 16:04:30
345
原创 自定义PopupWindow
一、自定义public class MyPopupWindow extends PopupWindow { // 根视图 private View mRootView; public View getmRootView() { return mRootView; } // LayoutInflater LayoutInfl
2016-07-17 11:53:30
1156
原创 公共值Constants
public class Constants { /** 网络标识值 */ public static class NetValue{ public static final int STATUS_NO_NETWORK =1; public static final int STATUS_TIMEOUT =2; public static fina
2016-07-17 11:34:13
869
原创 自定义ToolBar
自定义ToolBar,实现最大的自由度一、自定义控件/** * 自定义的标题 */public class TitleLayout extends RelativeLayout { private TextView tvTitle; private TextView tvRight; public TitleLayout(Context context
2016-07-17 11:19:11
274
原创 <第一行代码>笔记三
1、全局获取Context的技巧public class MyApplication extends Application { private static Context context; public static Context getContext() { return context; } @Override pub
2016-07-16 23:23:38
473
原创 开发常用框架
1、仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果,地址:https://github.com/saiwu-bigkoo/Android-PickerView2、高仿淘宝、京东商品详情页面的上拉加载图文详情功能,地址:https://github.com/cnbleu/SlideDetailsLayout3、多种下拉刷新效果、上拉加载更多、可配置自定义头部广
2016-07-16 22:58:05
1032
原创 <第一行代码>笔记二
一、.9图片中画线的区域表示要拉伸的地方二、动态添加Fragment的步骤1、创建待添加的Fragment的实例2、获取到FragmentManager,在活动中可以直接调用getFragmentManager()3、开启一个事务4、向窗口中加入碎片,一般使用replace()5、提交事务Fragment fragment = new Fragment();Fra
2016-07-15 23:02:28
311
原创 <第一行代码>笔记一
一、隐藏Activity标题:requestWindowFeature(Window.FEATURE_NO_TITILE);//要在setContentView()之前调用二、向下一个活动传递数据(在要启动的Activity中提供一个方法给上一个Activity调用)启动Activity的最佳写法:public class SecondActivity extends BaseAc
2016-07-14 23:17:06
410
C数据结构课程设计人机,网络,双人对战20*20五子棋游戏源码(包含课程设计文档)
2014-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人