Android知识点1

1.适配7.0 Uri

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
    StrictMode.VmPolicy.Builder builder=new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());
    builder.detectFileUriExposure();
}

2.初始权限申请和网络请求

3.图片预览功能阶梯:

手势缩放,滑动翻页,旋转,裁剪
缩放定位,压缩

4.64K方法数限制

defaultConfig {
  multiDexEnabled true
}
compile 'com.android.support:multidex:1.0.1'

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

5.使用弱引用关闭Activity

6.无标题栏主题样式

7.启用Dagger2-android

8.主项目引用库自定义控件无法提示问题:compileSdkVersion和targetSdkVersion版本号不一致

9.不可滑动的ViewPager

10.高斯模糊

renderscriptTargetApi 19
renderscriptSupportModeEnabled true 

compile 'com.github.mmin18:realtimeblurview:1.1.0'

<com.github.mmin18.widget.RealtimeBlurView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:realtimeBlurRadius="20dp"
    app:realtimeOverlayColor="#8000" />

11.DataBinding引用资源

12.RecyclerView多条目类型

13.OkHttp下载文件

14.Glide4.0

15.Drawable红鲤鱼动画

16.PopupWindow工具类

17.键盘开启、关闭、关闭监听、键盘顶起界面

18.TextInputLayout右侧鱼眼

19.TextView图标点击事件

20.EditText显示密码可见不可见
etPwd.setTransformationMethod(PasswordTransformationMethod.getInstance());
etPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());

21.自定义View+DataBinding事件绑定

22.EditText不可编辑可点击:

android:focusable="false" //不可获取焦点
setKeyListener(null);//不弹出键盘

23.FlexboxLayout

24.RxJava异常处理

25.Window设置背景透明度

26.PopupWindow的showAsDropdown的xOff是已ancherView左下角为基础,左移时要加上ancherView宽度

27.父控件抢占EditText焦点:

android:focusable="true"
android:focusableInTouchMode="true"

28.动画3D翻转和NineOldAandroids

29.百度地图

30.相册模块多配置,相机模块

31.自定义Badge,把它动态添加到View的右上角:
计算字数为1时边距大小

32.更好用的BadgeView库,compile 'q.rorbin:badgeview:1.1.2'

33.自定义Drawable:

1.不能单独以标签的形式在xml里使用,必须依附于其他控件
2.无自定义属性
3.无measure
4.专注绘制,比View,ViewGroup轻量
5.继承Drawable,setImageDrawable

34.lib导入arr

35.导入arr版本要求高

36.PopupWindow设置阴影

37.Tab和List框架

38.读取assets文件夹下内容

39.透明Activity


40.Acvity切换动画

starter.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
overridePendingTransition(0, 0);

41.IDE无法提示--->Clean Project

42.App启动:启动耗时,首屏白屏

43.ViewPager:控制滑动翻页,无限轮播,双向轮播,缩放复位,获取当前项

44.AppBarLayout,CollapseLayout,视差效果,折叠头部

45.ScrollView嵌套RecyclerView内容展开

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants">
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</RelativeLayout>

46.使用DBFlow存储搜索历史记录

47.软件盘设置搜索建,并监听,防止两次调用

android:imeOptions="actionSearch" 
android:singleLine="true"   
setOnKeyListener
if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
                    search();
                }

48.Retrofit请求参数为对象

49.ScrollView滚打底部

scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部

50.ScrollView中的EditText设置为被键盘顶起

android:windowSoftInputMode="stateHidden|adjustPan"

51.Retrofit的fullPath,即在接口Sercice中把整个@Path作为参数传入,普通使用会把/进行Url参数编码,无法使用

@FormUrlEncoded
@POST("{fullPath}")
Single<BaseEntity<HomeFirstBean>> homePage(@Path(value = "fullPath", encoded = true) String fullPath)

52.常用转义字符

&  -->  &amp;
<  -->  &lt;

53.GridLayoutManager设置等间距分割线

54.自动计算GridLayoutManager分割间距

55.EditText设置自定义输入限制过滤器,如金额首字母不能为零,最多两位小数,setFilters();

56.SpannableString文字大小和颜色,添加图标,图标竖直居中

new ForegroundColorSpan(0xFF999999)
new AbsoluteSizeSpan(12, true)
new CenterVerticalImageSpan(this, R.drawable.public_moredown)

57.TextView判断点击文本位置SpannableString设置ClickableSpan去掉默认下划线,同时设置字体颜色

binding.tvOpenWallet.setMovementMethod(LinkMovementMethod.getInstance());

58.身份证识别->光学识别

59.百度光学识别->身份证识别

60.Databinding的include

61.WebView和js交互,java调用JS函数

62.TextView设置Drawable

Drawable drawable = activity.getResources().getDrawable(R.mipmap.mall_selected_icon);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
tv.setCompoundDrawables(null, null, drawable, null);

63.RecyclerView的GridlayoutManager,的间距问题,右边不留空,不可解决

64.RecyclerView嵌套ScrollView禁止滚动
布局管理器方法

@Override
public boolean canScrollVertically() {
    return false;
}

65.DBFlow:同步批量处理,异步批处理,批处理监听

66.聊天列表时间显示隐藏规则

67.ViewPager判断是否可见:
setUserVisibleHint()

68.WheelView-3D

69.RecyclerView添加Footer,并适配瀑布流

70.混淆终于成功,混淆不要看warn日志,从项目的几个方面入手,进行。实在不行采用逐步缩紧的方式进行。

71.引入的.so库支持的cpu类型必须一致,删除一种cpu制式时要删除所有涉及的库和总应用。

72.RxJava使用zip来控制多个并发请求同时响应完成之后再处理界面

73.Android WiFi ADB无限调试

74.Retrofit+RxJava+文件上传进度封装

75.快速定位当前文件所在位置:点击目录栏上方的准星

76.关于系统导航栏:

判断是否有实体键:

boolean hasMenuKey = ViewConfiguration.get(this).hasPermanentMenuKey();
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);

获取导航栏高度:

int identifier = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
int height = getResources().getDimensionPixelSize(identifier);

透明导航栏:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

77.TextInputLayout实:EditText获取焦点后就去除提示;未输入提示和已输入提示不同:监听EditText的焦点状态重置连个hint内容

78.RecyclerView实现重叠鱼鳞状:addItemDecoration底部设为负值;Item最外层使用CardView;每一个CardView的CardElevation比上一条目的多一定比值

79.使用Spanny代替SpannableString:ForegroundColorSpan改变字体颜色;AbsoluteSizeSpan改变字体大小;可点击文字并改变文字颜色Clickable extends ClickableSpan;

78.银行卡空格式输入+卡Bin识别:
重新实现AddSpaceTextWatcher的onTextChanged方法

79.ScrollView当总内容没能填满屏幕时,底部内容位于屏幕底部,底部之上有空白填充;当总内容超出屏幕时底部内容位于总内容底部之间无填充;

80.当Activity布局填充完成时的监听回调;

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus && isFirst) {
            isFirst = false;
            App.post(new Runnable() {
                @Override
                public void run() {
                    //此处获取内容
                }
            });
        }
    }

81.键盘输入框的几种交互:
1.整个内容被从底部顶起
2.只有当前输入的EditText被顶起
3.指定控件被顶起

82.自定义Dialog:类似于使用Activity,onCreate(),onBackPress(),setContentView()等

83.页面路由,用于模块间访问,无法获取类名时。
Arouter

84.vlayout设置各个条目类型的缓存

85.WebView页面作为条目内容不要频繁加载

86.TextView动态设置drawLeft,drawRight...

Drawable drawable = context.getResources().getDrawable(R.mipmap.mine_shop_icon);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
tv.setCompoundDrawables(drawable, null, null, null);

87.隐式意图来完善模块化分割(独立功能拆分成库)时的双向调用;Application初始化时给库传入Context;

//在App module的清单中注册
<activity
    android:name="com.xjx.demo.home.BActivity"
    android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="com.demoBActivity.action" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>
//在App module中启动
Intent intent = new Intent();
intent.setAction("com.demoBActivity.action");
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent); 
        

88.使用配置文件画竖虚线:
(1)画横向虚线

    <shape android:shape="line">
        <stroke
            android:width="0.5dp"
            android:color="@android:color/white"
            android:dashGap="5dp"
            android:dashWidth="5dp" />
    </shape>
    //在View上加
    android:layerType="software"
    //否则为实线

(2)旋转90度

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="90"
    android:toDegrees="90">
    <shape android:shape="line">
        <stroke
            android:width="0.5dp"
            android:color="@android:color/white"
            android:dashGap="5dp"
            android:dashWidth="5dp" />
    </shape>
</rotate>

(3)View的宽度设为和目标高度一样,否则旋转后高度等于宽度。多出来的宽度使用负margin

<View
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:layerType="software"
    android:layout_marginLeft="-35dp"
    android:layout_marginRight="-35dp"
    android:background="@drawable/shape_line_dash" />

89.设置ViewPager缓存数量

binding.vpContent.setOffscreenPageLimit(8);

90.Room代替DBFlow:

91.谷歌新架构:
compile "android.arch.lifecycle:runtime:1.0.0"
compile "android.arch.lifecycle:extensions:1.0.0"
annotationProcessor "android.arch.lifecycle:compiler:1.0.0"
92.mac上修改Android Studio新建EmptyActivity时的模板布局:
在as应用程序显示包内容找Contents\plugins\android\lib\templates\activities\common\root\res\layout下,找到simple.xml.ftl文件
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="aty"
type="{packageName}.{activityClass}" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</layout>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,008评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,272评论 1 9
  • 06 金童玉女 九月末/周剑一家中 这天,秋雨的小师妹,周剑一在公大法学院读大四的女儿周点点,突然带着大队人马空降...
    CECILLA寒阅读 278评论 0 0
  • 1. 获取途径来自“硬”学科和“软”学科 (1)“硬”学科:具有非常严谨的实证和推理的过程,比如物理、数学等,这种...
    索班班阅读 550评论 0 0