2016-11-22 2 views
1

https://www.bignerdranch.com/blog/splash-screens-the-right-way/ 다음에 스플래시 화면을 만들려고했습니다. 스플래시 화면을 표시하기 위해 기본 액티비티의 맞춤 테마가 사용되었습니다.앱 시작시 메인 액티비티 테마를 적용하는 안드로이드를 가로 채는 방법

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@color/gray"/> 
    <item> 
     <bitmap 
      android:gravity="center" 
      android:src="@mipmap/ic_launcher"/> 
    </item> 
</layer-list> 

단색 대신 테마의 레이어 목록 항목에서 배경 이미지를 사용해야합니다. 문제는, 많은 사람들이 다른 곳에서 지적했듯이, 레이아웃에서 ImageView로 할 수있는 것과 같이 화면을 채우는 가운데 잘리는 비율로 비례 적으로 배율 된 배경 이미지를 가질 수있는 방법이없는 것입니다. 화면 차원을 기반으로 프로그래밍 방식으로 원본 비트 맵을 사용하여 새로운 비트 맵 드로어 블을 생성 한 다음 원래 드로어 블을 교체하려고했습니다. 그러나 이것은 주 활동 테마가 시작 직후와 응용 프로그램의 생성자 바로 앞에 나타나거나 활동의 생성자 또는 onCreate가 호출되기 때문에 작동하지 않습니다. 메인 액티비티 테마의 windowBackground가 화면에 표시되기 전에 그 드로어 블을 대체 할 수 있습니까?

답변

0

. 원본 치수를 기반으로 새로운 비트 맵 드로어 블을 만들려고했습니다. 그런 다음 원래 드로어 블을 교체합니다. 그러나 기본 액티비티 테마는 실행 직후와 애플리케이션의 생성자보다 훨씬 앞서거나 액티비티의 생성자 또는 onCreate가 호출되기 때문에 작동하지 않습니다. 당신은 활동이 시작되기 전에 호출의 주제로 작업로 사용하는 방법에 대한

, 당신의 자바 코드는 시작 화면에 쓸모가있을 것입니다. 그래서 내가 생각할 수있는 유일한 것은 그 자체 인 드로어 블 변경입니다.

많은 사람들이 다른 곳에서 지적했듯이, 레이아웃에서 ImageView를 사용하여 할 수있는 것처럼 화면 중앙에 잘린 비율로 비율을 조정할 수있는 방법이없는 것 같습니다.

여기가 까다로워집니다. 우리가 화면을 채우면서 비율을 유지하려면 이미지 자체를 사용해야합니다. 이렇게하는 가장 좋은 방법은 각각 (ldpi, mdpi, hdpi, xhdpi, xxhdpi)의 특정 크기에 대해 이미지을 작성하는 것입니다. 이러한 이미지를 다양한 디스플레이 크기 (예 : drawable-hdpi는 hdpi 해상도의 이미지를 저장합니다)의 드로어 블에로드하면 다양한 화면 해상도에서 이미지 크기가 거의 일정 해집니다.

다음 링크는 다양한 디스플레이에의 최소 화면 크기 을 제공합니다. 의 비트가을 실험으로 https://stackoverflow.com/a/42177842/7550472

, 당신은 귀하의 측면에서 필요없이 코드 변경와 함께, 당신은 시작 화면에서 원하는 정확한 크기로 이미지를 얻을 수 있습니다. 당신이해야 할 일은 다양한 디스플레이를위한 다양한 크기의 이미지를 넣는 것입니다. 그것은 당신의 스펙대로 작동 할 것입니다.

참고 : 이미지 크기를 조정할 때 Adobe Photoshop을 사용할 수 있습니다 (더 쉽게 작업 할 수 있습니다).

기본 설정에 따라 9 패치 이미지을 사용하여 이미지의 정적 영역에 영향을주지 않고 이미지의 테두리가 화면 크기에 맞게 늘릴 수 있습니다.

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

관련 문제