摘要:
public static boolean isWeiboInstalled(@NonNull Context context) { PackageManager pm; if ((pm = context.getApplicationContext().getPacka... 阅读全文
摘要:
Java的注解是个很神奇的东西,它既可以帮你生成代码,又可以结合反射来在运行时获得注解标识的对象,进行逻辑处理,它能帮助我们完成很多很多不可能完成的任务,这回我们就来一起来了解下它。一、什么可以被注解修饰Java中的类、方法、变量、参数、包都可以被注解,在java8中注解可以被运用到任何地方。比如:... 阅读全文
摘要:
我们希望在布局中显示测试的属性,而这个属性不会影响到正式代码,因此我们就需要tools这个命名空间。首先定义:xmlns:tools="http://schemas.android.com/tools"tools:context 填入activity的完整包名tools:menutools:acti... 阅读全文
摘要:
Listview在第一次的时候会先把屏幕上绘制的item都new出来,为了讲解方便我把new出来的item都用红色背景,复用的则用绿色背景。可以看到这个list种有三种item。在第一次展示的时候,listview会看屏幕上每种item有几个,比如这里的textView的item就有5个。它就会ne... 阅读全文
摘要:
public static final char UNDERLINE='_'; public static String camelToUnderline(String param){ if (param==null||"".equals(param.trim())){ ... 阅读全文
摘要:
package kale.http.framework.util;import android.content.ClipboardManager;import android.content.Context;/** * @author http://blog.csdn.net/voiceofnet/... 阅读全文
摘要:
本文转载自:http://blog.csdn.net/ouyang_peng/article/details/46919723作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!转载请保留原文地址:http://blog.csdn.net/ouyang_peng1.允许快速滑动在xml中将android:... 阅读全文
摘要:
插件的下载地址:https://chrome.google.com/webstore/detail/arc-welder/emfinbmielocnlhgmfkkmkngdoccbadn?utm_source=chrome-app-launcher-info-dialog安装好插件后,需要选一个目录... 阅读全文
摘要:
0、预备知识我们的手机屏幕的布局其实是嵌套的,最外层是一个phoneWindow,这个view和手机屏幕一样大,里面是一个frameLayout,再里面才是我们自己写的布局文件。我们在绘制控件前必须要经历measure的过程,这个过程需要从最外层的PhoneWindow开始进行。phonewindo... 阅读全文
摘要:
我们在做控件的时候可以使用tint这个属性给控件上色,这样在很多情况下能减少不同色彩的资源色彩。在MD设计中,控件颜色随着主体改变也是一大要点,今天我们就来看看如何使用它。使用步骤:1.建立一个控件;2.使用ViewCompat.setBackgroundTintList // 第一种实现... 阅读全文
摘要:
android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。//文本类型,多为大写、小写和数字符号。 android:inputType="none" android... 阅读全文
摘要:
Ctrl+U :如果你的光标在重写父类的一个方法内(如:Activity#onCreate()),这个将会跳到父类的实现上。如果你的光标在类名上,它将会跳到父类。Ctrl+Alt+Home:它可以帮助你很轻松地在布局文件和Activity/fragment文件之间进行导航。还有一个快捷方式是在类名的... 阅读全文
摘要:
先建立一个lib工程,然后build出aar。接着把aar放入要引入它的工程module的libs中。在project的build.gradle中:repositories { flatDir { dirs 'libs' //this way we can find the .a... 阅读全文
摘要:
Android的水波纹效果只有高版本才有,我们希望自己的应用在低版本用低版本的阴影,高版本用水波纹,这怎么做呢?其实,只要分drawable和drawablev21两个文件夹就好了。普通情况下的selector:v21中的selector: -->这里ripple中的color就是按下... 阅读全文
摘要:
可以在代码中动态设置:private void initSystemBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); Syst... 阅读全文
摘要:
其中: resource:是布局文件ID root:是父ViewGroup对象, attachToRoot:是是否将“翻译”出来的View添加到上面的root中 root和attachToRoot是共同作用的: 1,有root,同时attachToRoot为false,那么inflate()返回的就... 阅读全文
摘要:
我们要知道布局是否合理,可以通过Hierarchy Viewer这个工具。打开Hierarchy Viewer(定位到tools/目录下,直接执行hierarchyviewer的命令,选定需要查看的Process,再点击Load View Hierarchy会显示出当前界面的布局Tree。在每个模块... 阅读全文
摘要:
public class LengthFilter implements InputFilter { public LengthFilter(int max) { mMax = max; } @Override public C... 阅读全文
摘要:
我用的是retrolambda这个插件,下面来说下如何添加它。项目地址:https://github.com/evant/gradle-retrolambda在根项目的build.gradle中添加这个classpathclasspath 'me.tatarka:gradle-retrolambda... 阅读全文
摘要:
本篇文章讲的是如何用现有控件产生一个组合控件的方法,十分简单实用。现在开始!一、需求我们要实现一个有红点和文字的按钮控件,就像下面这样:二、实现我的思路是让一个button和一个textview进行组合。 可以看到最外层我用了merge标签,这是因为我需要把这个xml加载到一个自定义... 阅读全文
摘要:
我们在开发过程中总会碰到反射,一直在寻找封装的好用的反射库项目。昨天研究了一下,得到了很好的结果。 相信你看完这篇文章后立马就能学会反射。首先请clone这个项目:https://github.com/jOOQ/jOOR然后复制里面的两个类(https://github.com/jOOQ/jOOR/... 阅读全文
摘要:
1.局部刷新的引入提到RecyclerView,我们首先想到的是ListView,对于ListView的局部刷新,我们之前已经有解决方案,[android:ListView的局部刷新]当时的解决方案是:记录点击的Item的position,然后在更新过程中,不断的判断,该position是不是介于可... 阅读全文
摘要:
调用函数判断如下:if(getScrollY() + getHeight() >=computeVerticalScrollRange()){ Log.d(TAG,"------滚动到最下方------");}else{ Log.d(TAG,"没有到最下方");}或:重写ScrollVi... 阅读全文
摘要:
方法是在drawable文件中定义一个背景的xml文件。 之后调用即可。如果你的背景是有selector效果的,那么可以像下面一样解决: 阅读全文
摘要:
工作中遇到了一个需求是,在滚动的时候让actionbar上的图标进行变色。实现后在这里总结下思路。一、先在主题中定义好Actionbar的style 二、分区域进行改变2.1 改变最左边的返回按钮getSupportActionBar().setHomeAsUpIndicator(R.drawabl... 阅读全文
摘要:
参考自:http://www.open-open.com/lib/view/open1433406847322.html /** * 获取设备的mac地址 * * @param ac * @param callback * 成功获取到... 阅读全文
摘要:
上面的效果是用Radio进行制作的,一般我们做底部的切换栏的时候需要让按钮和文字都有一个选中的状态,然后根据点击不同的按钮触发不同的页面,这里的页面一般都是fragment做的。这里我们不讨论复杂的东西,只是讲如何实现这样的效果。这里的关键点是中间的按钮和两边的按钮没有互斥关系,仅仅是一个独立的Im... 阅读全文
摘要:
public class ObservableScrollView extends ScrollView { public ObservableScrollView(Context context) { super(context); } public Observa... 阅读全文
摘要:
1、在ViewPager中默认加载当前屏幕上的界面和左右相邻界面的数据从而实现页面滑动的快速切换。可以通过调用setOffscreenPageLimit(int)方法,定制预加载相邻页面的数目。2、FragmentStatePagerAdapter与FragmentPagerAdapter基本相同,... 阅读全文
摘要:
单例模式用application的context如果我们在Activity A中或者其他地方使用Foo.getInstance()时,我们总是会顺手写一个『this』或者『mContext』(这个变量也是指向this)。试想一下,当前我们所用的Foo是单例,意味着被初始化后会一直存在与内存中,以方便... 阅读全文
摘要:
我们希望让输入法在给EditText输入文字的时候,右下角有一个搜索的按钮图标,这就需要在java代码和xml中做点设置了。一、xml二、javaEditText editText = (EditText) findViewById(R.id.searchEditText); // h... 阅读全文
摘要:
我们注意到上面的文件中有item和shape,shape就不多说了就是一个规则的图像。... 阅读全文
摘要:
Android 开源界最伟(jian)大(zhi)高(kai)效(gua)的公司Square又向业界投下一颗重磅炸弹。推出了一个叫LeakCanary的玩意儿,可以通过简单粗暴的方式来让开发者获取自己应用的内存泄露情况。而且得益于gradle强大的可配置性,可以确保只在编译 debug 版本时才... 阅读全文
摘要:
APK瘦身是长久以来的难题,我们需要通过一些工具和技巧才能让它瘦下去,下面我来分享一下我在apk瘦身方面的经验。一、apk中有哪些东西1.代码2.lib3.so本地库4.资源文件(图片,音频,字体等)二、针对性解决问题1.代码我们代码的优化可以通过混淆来删除没有用到的代码:buildTypes { ... 阅读全文
摘要:
第一种方法(强烈推荐)方法:selector做遮罩,原图做background。我们做按钮的时候经常需要用两个图片来实现按钮点击和普通状态的样式,这就需要提供两种图片,而且每个分辨率下还有多套图片,大大增加了apk的大小。我们希望让这两张图片合二为一,而且还能实现两种或者多种状态,怎么做呢?我们首先... 阅读全文
摘要:
要运行Lint工具,大家首先需要在Android Studio的“Analyze”菜单中选择“Inspect Code…”。当Android Studio完成了对项目的检测之后,它会在窗口底部显示出分析结果。请注意,除了Android Lint之外,Android Studio还提供一系列其它检查功... 阅读全文
摘要:
文章地址:http://www.worldhello.net/gotgithub/index.html 阅读全文
摘要:
android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏android:theme="@android:style... 阅读全文
摘要:
http://rinvay.github.io/android/2015/03/26/Gradle-Plugin-User-Guide(Translation)/ 阅读全文
摘要:
我们用toast时不能设置显示的时间,而且不支持在线程中展示toast,下面我对原始的toast进行了封装,这样我们可以很方便的进行toast的使用了。package com.kale.lib.utils;import android.content.Context;import android.o... 阅读全文