好文档 - 专业文书写作范文服务资料分享网站

android开发中知识点记录

天下 分享 时间: 加入收藏 我要投稿 点赞

状态栏

状态栏颜色设置,4.4以上系统才能设置状态栏

5.0以上google提供activity.getWindow().setStatusBarColor(color);

方法直接设置状态栏颜色,设计上状态栏以深色为佳,不用改变状态栏字体颜色,状态栏默认字体颜色是白色,改变字体颜色在小米,魅族这些定制系统的手机上一般很难适配,达到预期。所以一般不建议设计状态栏,actionBar,导航栏为白色。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上系统

//5.0及以上,不设置透明状态栏,设置会有半透明阴影 activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

//设置statusBar的背景色 activity.getWindow().setStatusBarColor(color);

} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { //4.4 ~ 5.0系统

activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

// 生成一个状态栏大小的矩形 View statusView = createStatusBarView(activity, color);

// 添加 statusView 到布局中 ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); decorView.addView(statusView);

//让我们的activity_main。xml中的布局适应屏幕 }

/** * 获取状态栏的高度 * * @param acitivity * @return */ public static int getStatusBarHeight(Activity acitivity) {

int resourceId = acitivity.getResources().getIdentifier(\, \, \); return acitivity.getResources().getDimensionPixelOffset(resourceId); }

/** * 生成一个和状态栏大小相同的矩形条 * * @param activity 需要设置的activity * @param color 状态栏颜色值 * @return 状态栏矩形条 */ private static View createStatusBarView(Activity activity, int color) {

// 绘制一个和状态栏一样高的矩形 View statusBarView = new View(activity);

LinearLayout.LayoutParams params = new

LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,

getStatusBarHeight(activity));

statusBarView.setLayoutParams(params); statusBarView.setBackgroundColor(color); return statusBarView; }

6.0以上系统权限动态申请

在Android6.0中,引入了动态申请权限机制。 以前我们在申请权限的时候,都是写在了Manifest.xml里面。 安装的时候会有一堆提示申请权限的界面,

请注意,如果你使用了API 23以上, 然而并没有用代码处理权限问题。 那么你的程序将会 CRASH !!!

需要动态申请的, 也称为危险权限。

先通过

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 判断系统sdk是否大于6.0(23) 在通过

ContextCompat.checkSelfPermission(@NonNull Context context, @NonNull String permission)检测权限是否允许 ,提示和拒绝时,返回-1 ,允许时返回0

返回-1时,通过ContextCompat.requestPermission(context,String[]{} permissions)

来申请权限。在activity的回调方法 onRequestPermissionsResult获取申请结果

实例:

if (Build.VERSION.SDK_INT >= 23) {

int permiss = ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION);

if (permiss != 0) {//没权限

ActivityCompat.requestPermissions(context,

newString[]{Manifest.permission.ACCESS_FINE_LOCATION}, requestCode); }else{

}

}

//有权限,直接做业务逻辑

//权限是否成功回调 @Override

public void onRequestPermissionsResult(int requestCode, String permissions[], int[]

grantResults) { switch (requestCode) { case 6: {//权限申请成功

android开发中知识点记录

状态栏状态栏颜色设置,4.4以上系统才能设置状态栏5.0以上google提供activity.getWindow().setStatusBarColor(color);方法直接设置状态栏颜色,设计上状态栏以深色为佳,不用改变状态栏字体颜色,状态栏默认字体颜色是白色,改变字体颜色在小米,魅族这些定制系统的手机上一般很难适配,达
推荐度:
点击下载文档文档为doc格式
2016n6jtx63fmdy9ul8q7b8vd538ce00y4w
领取福利

微信扫码领取福利

微信扫码分享