android
一个玩重机的coder
Read The Fucking Source Code
思路决定出路
展开
-
实现自定义actionbar背景透明度的变化
自定义actionbar透明度变化原创 2016-05-04 11:59:19 · 1610 阅读 · 0 评论 -
托管项目到GitHub
参考http://blog.csdn.net/lxk_1993/article/details/50441442 1.首先进入github主页,登录你刚注册的账号。点击New repository. 2.输入你的Repository name(仓库名),即可创建。 Description和下面的可以不填。 3. 复制https地址。 4.来到你的项目的根目录。如图,笔者的项目名字是share转载 2016-05-06 13:32:38 · 265 阅读 · 0 评论 -
android监听软键盘回车键并且解决默认点击两次的问题
@Override public boolean dispatchKeyEvent(KeyEvent event) {if(event.getKeyCode()==KeyEvent.KEYCODE_ENTER&&event.getAction()!=KeyEvent.ACTION_UP) { //不响应抬起事件 /*隐藏软键盘*/ InputMethodManager inputMetho转载 2016-06-24 23:50:42 · 488 阅读 · 0 评论 -
Android之监听手机软键盘弹起与关闭
http://blog.csdn.net/bear_huangzhen/article/details/45896333要为Activity的最外面的Layout设置一个OnLayoutChangeListener监听器:首先我们需要将监听所在的Activity在Manifest文件中的设置为如下形式:<activity android:name="com.bear.softkeyboa转载 2016-06-26 19:39:38 · 1136 阅读 · 0 评论 -
popupwindow使用之底部弹出
//弹出框popupwindow private void initMyPopWindow(View v) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_popup_comment1, null, false); TextView tvDelete =原创 2016-06-26 23:35:23 · 726 阅读 · 0 评论 -
android中延迟执行某个任务
android中延迟执行某个任务(用handler可以直接修改ui,因为是在主线程) http://blog.csdn.net/qinde025/article/details/6828723new Handler().postDelayed(new Runnable(){ public void run() { //execute the task转载 2016-06-16 00:55:00 · 355 阅读 · 0 评论 -
PopupWindow使用方法
http://www.runoob.com/w3cnote/android-tutorial-popupwindow.html转载 2016-06-16 10:54:35 · 312 阅读 · 0 评论 -
android Layout技巧汇总
<ListView android:id="@+id/lv_left_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:listSelector="@android:color原创 2016-05-10 17:44:22 · 403 阅读 · 0 评论 -
RecyclerView详解
https://guides.codepath.com/android/Using-the-RecyclerView#attaching-click-handlers-to-items转载 2016-06-16 11:00:01 · 275 阅读 · 0 评论 -
GIT分支间切换
git分支间切换原创 2016-07-14 13:47:26 · 339 阅读 · 0 评论 -
Material Design
snackbar使用(类似于toast) Snackbar.make(rootlayout, "Hello SnackBar!", Snackbar.LENGTH_SHORT) .setAction("Undo", new View.OnClickListener() { @Override public void onClic转载 2016-07-15 14:46:22 · 199 阅读 · 0 评论 -
Change project总结
圈子页:FmCircleFragement包括一个顶部自定义的actionbar一个viewpager 使用技术: fragment加载布局:在onCreatView加载fragment的布局文件使用View view = View.inflate(getContext(), R.layout.fragment_circle_fm, null); viewpagere的常用方法: v原创 2016-09-14 19:58:30 · 396 阅读 · 0 评论 -
Sqlite使用及升级
http://blog.csdn.net/zgljl2012/article/details/44769043 http://www.jianshu.com/p/65a025637d40转载 2016-09-16 15:16:57 · 319 阅读 · 0 评论 -
java回调与异步网络请求的封装
java回调:http://blog.csdn.net/xiaanming/article/details/8703708 网络请求的封装:http://www.jianshu.com/p/3141d4e46240转载 2016-10-09 10:51:36 · 2638 阅读 · 0 评论 -
读书笔记
进程间通讯binder机制:http://weishu.me/2016/01/12/binder-index-for-newer/hashmap解决冲突:http://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE%9E%E7%8E%B0/jvm内存模型:http原创 2016-09-18 15:24:17 · 361 阅读 · 0 评论 -
点击用户头像预览大图
头像预览帮助类,使用方法 new AvatarScanHelper(context, url).show();import android.app.Dialog;import android.content.Context;import android.graphics.Rect;import android.net.Uri;import android.util.DisplayMetric原创 2016-10-10 16:53:37 · 1469 阅读 · 0 评论 -
AndroidStudio MacOsFM自定义快捷键
mac的默认快捷键我的手干不过来,还是自定义吧,整合一下windows的也好记住,起飞吧。。。。。command+L 格式化 command+/ 自动补全代码 command+enter 修复代码 command+delete 删除一行 command+d 复制一行 command+⬅️ tag左移 command+➡️ tag右移 command+z 回撤 command+⬆️ 移原创 2016-07-12 11:15:47 · 340 阅读 · 0 评论 -
Android在RecyclerView/ScrollView中嵌套一个GridView或者recyclerView时只显示一行的原因及解决方法
http://blog.csdn.net/lemon_tree12138/article/details/39058973 重写onMeasure方法public class NoScrollGridView extends GridView { public NoScrollGridView(Context context) { super(context);转载 2016-06-16 10:53:08 · 2789 阅读 · 0 评论 -
禁止了gridview的滑动,并且解决了当一个滑动控件包裹这个gridview时,gridview只显示一行的问题
禁掉别的滑动控件的滑动原理类似,都是重写dispatchTouchEvent()方法。public class NoScrollGridview extends GridView { public NoScrollGridview(Context context) { super(context); } public NoScrollGridview(Conte原创 2016-09-26 19:18:24 · 278 阅读 · 0 评论 -
定时器new Timer().schedule()的使用
http://linhongyu.blog.51cto.com/6373370/1437561 Timer是一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。实际上是个线程,定时调度所拥有的TimerTasks。 TimerTask是一个抽象类,它的子类由 Timer 安排为一次执行或重复执行的任务。实际上就是一个拥有run方法的类,需要定时执行的代码放到r转载 2016-09-27 16:09:29 · 27589 阅读 · 4 评论 -
BaseRecyclerViewAdapterHelper
https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/%E9%A6%96%E9%A1%B5转载 2016-10-24 11:00:05 · 310 阅读 · 0 评论 -
android mvp
https://github.com/antoniolg/androidmvp http://blog.csdn.net/feiduclear_up/article/details/46374653 http://chuansong.me/n/400691051326转载 2016-11-16 10:42:53 · 247 阅读 · 0 评论 -
material design
http://www.jianshu.com/p/9ad855577d1c转载 2016-11-16 10:43:44 · 205 阅读 · 0 评论 -
gradle
Maven这里写链接内容 Gradle这里写链接内容 仓库区别这里写链接内容转载 2016-12-22 17:03:07 · 183 阅读 · 0 评论 -
git 实战
参考这里写链接内容 1 把SSH Key添加到GitLab 2 克隆远程仓库 (克隆完以后本地只有一个master分支) $ git clone xxxxxxxxxx.git 3 新建一个本地的开发分支(不需要有一个对应的远程dev分支) $ git checkout -b dev 4 在dev上进行开发 5 小伙伴们提交代码以后,自己要切回master分支,拉取远程最新代原创 2016-10-25 16:34:45 · 199 阅读 · 0 评论 -
Android多渠道打包两种方式(带秒速打包)
多渠道打包,主要是为了统计不同的渠道上包的下载数量,统计可以用umeng统计或者mta统计,本文用的是mta统计。 其实多渠道打包的实现与统计是没有关系的,多渠道打包与统计之间的关系是我们要把渠道号交给统计。例如mta统计里 StatConfig.setInstallChannel(ChannelUtil.getChannel(this));//设置apk渠道信息用这行代码把原创 2016-10-28 15:35:19 · 2167 阅读 · 0 评论 -
android使用timer和timertask实现计时器
too simple to show u my code directly 效果:第一个activity,oncreate中启动计时器,当activity不可见时暂停计时器,可见时再继续计时器,跳到第二个activity时显示当前所用时间,并暂停计时器,返回第一个activity时启动计时器。 第一个activity代码:package com.febmaple.testtimer;import原创 2017-04-07 15:11:38 · 2685 阅读 · 0 评论 -
代码中设置marginstart属性
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) holder.btn_download.getLayoutParams(); layoutParams.setMarginStart((int) Utils.dip2px(mContext, 75l));//把75dp转换为px原创 2017-04-19 16:25:44 · 3337 阅读 · 0 评论 -
只保留armeabi的.so文件用来减小apk包(不保证100%不崩溃)
由于所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,因此似乎移除其他ABIs的.so文件是一个减少APK大小的好技巧,但事实上并不是:这不只影响到函数库的性能和兼容性。 但是反编译某几个大厂的apk可以看到大家确实用了这个方法,所以可以一用。用法: 只保留图中armeabi(v5)里的.so文件。相关资料如下: http://原创 2017-05-02 15:43:12 · 3901 阅读 · 0 评论 -
封装View,封装逻辑,脱光activity
开发中如果遇到界面比较复杂的情况,可以考虑封装成一个个单独的View, 把逻辑封装到每个单独的View中,减少activity或fragment里的代码,便于管理代码。 一般这种自定义View继承自FrameLayout就好。 实现效果如下图,是一个横向滑动的recyclerview( 并把recyclerview的item的点击事件暴露出来了); 下面直接上代码 MainActivit原创 2017-04-20 15:55:49 · 1450 阅读 · 0 评论 -
带“更多”“收起”的多行折叠textview
原创链接: http://blog.csdn.net/yeah0126/article/details/52060210 https://github.com/Carbs0126/ExpandableTextView/blob/master/sample/src/main/res/layout/activity_main.xml https://github.com/Manabu-GT/Exp转载 2017-05-11 18:11:01 · 1465 阅读 · 0 评论 -
app搭建
使用框架,首页activity使用viewpager,其适配器使用fragmentPagerAdapter(用来处理几个页面都是fragment的),然后禁掉viewpager的滑动,搞定!!!! (change使用的框架是首页activity里包含几个fragment,然后通过fragment的显示与隐藏来进行tab切换:即一个activity里包含多个fragment,每个fragment再跳原创 2016-09-30 11:46:09 · 359 阅读 · 0 评论 -
git切换分支前stash的用法
参考链接 在此记录git stash的用法,借鉴上面链接。 1、在原分支 git stash save -a “messeag” -a是将新加入的代码文件同时放入暂存区,如果是以前就有了,那么就不用加-a,你加的话,会报错的。 2、切回以前的分支后,如果你要恢复的是最近的一次改动,git stash pop,如果有多次stash操作,那就通过git stash list查看stash列表,从转载 2017-04-24 15:06:21 · 3788 阅读 · 0 评论 -
时间转换:秒转String
/** * s2string * @param cnt 秒 * @return */ private String getStringTime(long cnt) { long hour = cnt / 3600; long min = cnt % 3600 / 60; long second = cnt原创 2017-04-17 20:17:36 · 450 阅读 · 0 评论 -
AlertDialog完全使用
1圆角//设置dialog背景android.view.Window window = dialog.getWindow();window.setBackgroundDrawableResource(R.drawable.back);R.drawable.back文件<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http原创 2017-05-16 22:51:35 · 245 阅读 · 0 评论 -
bindservice与使用监听器更新进度+观察者模式
startservice与启动service的控件不会有关联,如果想两者需要通信得使用bindservice,另外bindservice当启动service的控件被销毁后会导致service的销毁,所以要同时使用startservice与bindservice。 更新进度可以用broadcastreceiver来做,但是对于多线程下载,如果用广播这个系统级别的东西,势必会出问题,所以建议用监听器来原创 2017-03-09 16:03:51 · 600 阅读 · 0 评论 -
android调用拨打电话(包括运行时权限)
/** * 拨打电话(跳转到拨号界面,用户手动点击拨打) * * @param phoneNum 电话号码 */ public void diallPhone(String phoneNum) { Intent intent = new Intent(Intent.ACTION_DIAL); Uri data = Uri原创 2017-05-17 22:19:30 · 24887 阅读 · 0 评论 -
禁调滑动的recyclerview
import android.content.Context;import android.support.annotation.Nullable;import android.support.v7.widget.RecyclerView;import android.util.AttributeSet;import android.view.MotionEvent;import andr原创 2017-05-18 16:24:42 · 513 阅读 · 0 评论 -
解决Scrollview内嵌recyclerview滑动冲突(惯性消失问题解决)
srollview默认是没有暴露出onscrollChanged()方法的,所以要写一个ScrollViewListener接口把该方法暴露出来package原创 2016-05-04 11:34:17 · 5119 阅读 · 0 评论 -
Android Apt与annotationProcessor
APT(Annotation Processing Tool)是一种注解处理器,它对源代码文件进行检测找出其中的Annotation,使用Annotation进行额外的处理。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件(文件具体内容由Annotation处理器的编写者决定),APT还会编译生成的源文件和原来的源文件,将它们转载 2017-06-09 16:12:53 · 762 阅读 · 0 评论