안드로이드 몰입식 상태 표시줄 설계
현재 주류인 App 디자인 스타일은 대부분이 Materail Design에 사용되고 있다. 오늘은 상태 표시줄의 색깔을 바꾸고 상태 표시줄을 투명하게 하는 두 가지 효과를 간단하게 실현하자.
2. 상태 표시줄의 색상 설정 실현
도구 클래스 StatusBarUtils 코드는 다음과 같습니다.
/**
*
*
* @param activity
*/
public static void setStatusColor(Activity activity, int color) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
// setStatusBarColor
activity.getWindow().setStatusBarColor(color);
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
// 4.4 - 5.0 , ,
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
View view = new View(activity);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusbarHeight(activity));
view.setLayoutParams(params);
view.setBackgroundColor(color);
ViewGroup viewGroup = (ViewGroup) activity.getWindow().getDecorView();
viewGroup.addView(view);
// activity setContentView
ViewGroup contentView = (ViewGroup) activity.findViewById(android.R.id.content);
View activityView = contentView.getChildAt(0);
activityView.setFitsSystemWindows(true);
}
}
private static int getStatusbarHeight(Activity activity) {
Resources resources = activity.getResources();
int statusHeightId = resources.getIdentifier("status_bar_height", "dimen", "android");
return resources.getDimensionPixelOffset(statusHeightId);
}
안드로이드 5.0 이상 시스템이 제공하는 방법인 set Status BarColor를 직접 호출하여 4.4-5.0 사이를 먼저 전체 화면으로 만든 다음에 상태 표시줄의 부분에 레이아웃을 추가한다.
3. 상태 표시줄 투명도 설정
코드:
public static void setActivityTranslucent(Activity activity) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
코드가 이렇게 많으니 분석이 끝났으니 효과는 여러분이 직접 해 보셔도 됩니다. 저는 그림을 그리지 않겠습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.