API21 ~ API23을 포함한 모든 API에서 SplashScreen을 멋지게 보이게하는 편집 된 솔루션
우선 이 기사를 읽고 스플래시 화면을 만드는 좋은 방법을 따르십시오.
로고가 왜곡되거나 맞지 않고 APIs24 + 만 대상으로하는 경우 다음과 같이 xml 파일에서 직접 벡터 드로어 블을 축소 할 수 있습니다.
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="640"
android:viewportHeight="640"
android:width="240dp"
android:height="240dp">
<path
android:pathData="M320.96 55.9L477.14 345L161.67 345L320.96 55.9Z"
android:strokeColor="#292929"
android:strokeWidth="24" />
</vector>
위의 코드에서 640x640 캔버스에 그린 드로어 블의 크기를 240x240으로 조정하고 있습니다. 그런 다음 스플래시 화면 드로어 블에 넣었을 때 잘 작동합니다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"
android:paddingBottom="20dp" android:paddingRight="20dp" android:paddingLeft="20dp" android:paddingTop="20dp">
<!-- The background color, preferably the same as your normal theme -->
<item>
<shape>
<size android:height="120dp" android:width="120dp"/>
<solid android:color="@android:color/white"/>
</shape>
</item>
<!-- Your product logo - 144dp color version of your app icon -->
<item
android:drawable="@drawable/logo_vect"
android:gravity="center">
</item>
</layer-list>
내 코드는 실제로 하단의 그림에서 삼각형을 그리는 것이지만 여기에서 이걸로 무엇을 얻을 수 있는지 볼 수 있습니다. 해상도는 비트 맵을 사용할 때 얻은 픽셀 화 된 가장자리와 달리 마침내 훌륭합니다. 따라서 벡터 드로어 블을 반드시 사용하십시오 (특수 소프트웨어를 다운로드하는 번거 로움없이 내 것을 만들 때 사용한 vectr라는 사이트가 있습니다).
API21-22-23에서도 작동하도록 수정
위의 솔루션은 API24 +를 실행하는 장치에서 작동하지만 API22를 실행하는 장치에 앱을 설치 한 후 정말 실망했습니다. 스플래시 화면이 다시 전체 뷰를 채우려 고하고 똥처럼 보이는 것을 발견했습니다. 반나절 동안 눈썹을 찢은 후 마침내 순전히 의지력으로 해결책을 강요했습니다.
스플래시 스크린 xml (splash_screen.xml이라고도 함)과 정확히 같은 이름의 두 번째 파일을 만들고 res / 폴더에 만들 drawable-v22 및 drawable-v21이라는 두 폴더에 배치해야합니다. Android에서 Project로 프로젝트보기를 변경해야합니다). 이는 관련 장치가 드로어 블 폴더의 -vXX 접미사에 해당하는 API를 실행할 때마다 해당 폴더에있는 파일로 리디렉션하도록 전화기에 지시하는 역할을 합니다 . 이 링크를 참조하십시오 . 이러한 폴더에 생성하는 splash_screen.xml 파일의 레이어 목록에 다음 코드를 배치합니다.
<item>
<shape>
<size android:height="120dp" android:width="120dp"/>
<solid android:color="@android:color/white"/>
</shape>
</item>
<!-- Your product logo - 144dp color version of your app icon -->
<item android:gravity="center">
<bitmap android:gravity="center"
android:src="logo_vect"/>
</item>
이러한 API에 대한 어떤 이유로 인해 드로어 블을 비트 맵으로 래핑해야 작동하고 최종 결과가 동일하게 표시됩니다. 문제는 추가 드로어 블 폴더와 함께 aproach를 사용해야한다는 것입니다. splash_screen.xml 파일의 두 번째 버전으로 인해 API가 23보다 높은 장치에서 스플래시 화면이 전혀 표시되지 않을 수 있습니다. 또한 배치해야 할 수도 있습니다. android는 기본적으로 리소스를 찾을 수있는 가장 가까운 drawable-vXX 폴더로 설정되므로 splash_screen.xml의 첫 번째 버전을 drawable-v24에 넣습니다.