Android学习中有很多零碎的知识,做个记录方便查看(连载中………)。
1. 启动系统图库:
//调用系统的图库
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
startActivityForResult(intent,100);
//重写onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK) {
if (data != null) {
mPhoto.setImageURI(data.getData());
}
}
}
2. 修改Edittext的字体:
//提前将需要的字体放入assets文件下
word = (EditText) findViewById(R.id.word); word.setTypeface(Typeface.createFromAsset(getAssets(),"test.ttf"));
3. 获取屏幕截图:
//最后会将屏幕截图作为Bitmap返回
View view = getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
view.getDrawingCache()
4. 在AS中创建lib,asset等文件夹:
刚刚使用AS的时候找不到lib,assets文件夹,有两种办法:
方法一:右键Module->new->Folder->Assets Folder;这里边可以新建常用的文件夹。
方法二:把视图切换到Progect视图 然后打开需要创建lib文件夹的Module,选择src->main->右键->new -> Directory,输入jniLibs,然后切换回Android视图下便会有libs文件夹
5. ANR问题出现的三种常见原因:
KeyDispatchTimeout(5 seconds) – 主要原因
按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds)
BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 seconds) – 小概率原因
Service在特定的时间内无法处理完成
6. FC问题出现的原因:
- 应用运行时抛出了OOM问题(OutOfMemoryError)
- 应用运行时抛出了RuntimeException问题
7.Meterial Design中关于阴影高度的标准建议:
- 应用条:4dp
- 浮动按钮:静态:2dp 敲击状态:8dp
- 浮动动作按钮(FAB):静态:6dp 敲击状态:12dp
- 卡片:静态:2dp 选中状态:8dp
- 菜单和子菜单:菜单:8dp 子菜单:9dp(为子菜单增加 1dp)
- 对话框:24dp
- 导航抽屉和右抽屉:16dp
- 底部单页:16dp
- 刷新按钮:3dp
- 快速查询/搜索条:静止状态:2dp 滚动状态:3dp
- Snackbar:6dp
- 切换按钮:1dp
8.线性布局中的weight的含义:
android:layout_weight的真实含义是:如果View设置了该属性并且有效,那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比。
9. Android中的.9图四边含义:
左上边代表拉伸区域,右下边代表padding box,就是间隔区域