Android 시작 페이지 에 흰색 화면,검은색 화면 이 나타 나 는 솔 루 션

역사적 원인
시스템 이 APP 를 시작 할 때 zygote 프로 세 스 는 먼저 새로운 프로 세 스 를 만들어 서 이 APP 를 실행 합 니 다.그러나 프로 세 스 의 생 성 은 시간 이 필요 합 니 다.생 성 이 완료 되 기 전에 인터페이스 가 가사 상 태 를 나타 내 므 로 어색 합 니 다.사용 자 는 APP 를 누 르 지 않 았 다 고 생각 하고 다시 클릭 하기 때문에 사용자 체험 을 크게 낮 출 수 있 습 니 다.안 드 로 이 드 는 이 팬 들 의 어색 함 을 피하 기 위해 제때에 피드백 을 해 야 한다.따라서 시스템 은 매 니 페스트 파일 이 설정 한 테마 색상 에 따라 흰색 화면 이나 검은색 화면 을 보 여 줍 니 다.이 검은색(흰색)화면의 정식 호칭 은 Preview Window,즉 미리 보기 창 이 어야 합 니 다.
자,이제 알 겠 습 니 다.Preview Window 는 사용자 체험 을 향상 시 키 기 위해 의도 적 으로 설정 한 것 입 니 다.따라서 강박 증 이 아니라면 문제 가 되 지 않 을 수도 있다.
하지만 대부분의 동료 들 은 나 와 같은 강박 증 환자 일 것 이다.이렇게 못 생 긴 블랙 스크린 이 어떻게 내 앱 에 나타 날 수 있 을 까??!!!
그래서 다음은 이 문제 의 해결 방안 에 대해 이야기 하 겠 습 니 다.
머리말
현재 app 의 디자인 방향 은 모두 시작 페이지 가 있 고 데이터 초기 화 등 시간 이 걸 리 는 작업 을 할 수 있 습 니 다.이것 은 시작 페이지 의 짧 은 흰색 화면 이나 검은색 화면(검은색 인지 흰색 은 기본 테마 에 달 려 있 습 니 다)을 만 들 수 있 습 니 다.그렇다면 이런 문 제 는 어떻게 해결 할 것 인가?오늘 은 비교적 완벽 한 해결 방안 을 소개 합 니 다:layerlist 중첩 층.
만약 당신 의 시작 페이지 가 정적 그림 이 라면,이런 방식 은 당신 에 게 매우 적합 합 니 다.
일반적으로 시작 페이지 는 화려 하지 않 고 표준 적 인 것 은 로고+app 이름 이 며 위아래 로 배열 되 어 있 습 니 다.다음 그림 과 유사 합 니 다:

QQ 음악 시작 페이지
만약 그렇다면 가장 간단 한 것 입 니 다.UI 를 찾 아 로고+텍스트 그림 을 몇 장 자 르 고 x xx xxx 에 따라 놓 은 다음 drawable 폴 더 에 layer 를 새로 만 듭 니 다.splash.xml 파일:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
 <!--         --> 
 <item android:drawable="@color/white" /> <item> 
 <!--       --> 
 <bitmap 
  android:gravity="center" 
  android:src="@drawable/icon_welcome"
  android:scaleType="center" /> 
</item>
</layer-list>
그리고 목록 파일 에서 시작 페이지 Activity 에 테 마 를 따로 설정 합 니 다:SplashAppTheme,그리고 그 중에서 방금 새로 만 든 중첩 층 레이아웃 파일 을 참조 하여 큰 성 과 를 거 두 었 습 니 다!이런 방식 은 어떤 기다 림 도 필요 없 이 초 단위 로 할 수 있다.

<style name="SplashAppTheme" parent="android:Theme">
  <item name="android:windowNoTitle">true</item>
  <item name="android:windowFullscreen">true</item>
  <item name="android:windowBackground">@drawable/layer_splash</item>
</style>
그러나 시작 페이지 가 이러한 레이아웃 이 아니 라 다음 그림 과 유사 하 다 면:

박식 하 다
상하 레이아웃,간격 이 비교적 크 고 상하 간 의 레이아웃 이 고정 되 지 않 습 니 다(기종 스크린 크기 에 따라 자동 으로 적응 합 니 다).이런 것 은 어떻게 처리 해 야 합 니까?유 이 매 종 이 는 또 비율 확 대 를 기다 리 지 말 라 고 했 어 요.그게 못 생 겼 다 고 했 죠.............................................
사실 우 리 는 이렇게 할 수 있다.상하 구 조 를 자 른 다음 에 이렇게 된다.

splash_top

splash_bottom
우리 의 xml 파일 은 이렇게 씁 니 다:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <!--         -->
 <item>
  <color android:color="@color/white" />
 </item>
 <!--    -->
 <item>
  <bitmap
   android:gravity="top|center_horizontal"
   android:scaleType="center"
   android:src="@drawable/splash_top" />
 </item>
 <!--    -->
 <item>
  <bitmap   android:gravity="bottom|center_horizontal"
   android:scaleType="center"
   android:src="@drawable/splash_bottom" />
 </item>
</layer-list>
top 과 bottom 은 서로 다른 사이즈 의 시작 페이지 그림 에 따라 절단 해 야 합 니 다.그러면 각종 해상도 화면의 적합 한 문 제 를 완벽 하 게 해결 할 수 있 습 니 다(태 블 릿 포함).
만약 에 시작 페이지 가 비교적 간결 하고 내 가 말 한 이 두 가지 상황 과 차이 가 많 지 않다 면 시작 페이지 Activity 에 레이아웃 파일(setContentView()을 설정 하지 않 고 중첩 층 만 레이아웃 으로 표시 할 수 있 습 니 다.
만약 에 app 시작 페이지 가 비교적 화려 하거나 불규칙 하 다 면 이런 방식 으로 비교적 간결 한 app 시작 그림 의 중첩 층 구 조 를 추가 하고 시작 페이지 의 주제 로 불 러 올 수 있 습 니 다.시작 초기 화 를 마치 고 페이지 의 변화 등 작업 을 할 수 있 습 니 다.초 시작 할 때 까지 흰색 화면 이나 검은색 화면 을 참 지 않 을 수 있 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기