2014-04-25 2 views
0

에 대해 안드로이드 시스템이 수행 할 작업 일치하는 리소스를 찾을 수없는 경우 안드로이드가 대체 리소스에 대한 추가 작업을 수행함을 발견했습니다. 예를 들어대체 이미지 리소스

는 다음 drawable-hdpi 폴더에, 그리고 없음 drawable-xxhdpi 폴더 :

나는 일부 이미지 (640x960 크기)를 넣습니다. 이미지로드 decodeResource() 사용

하십시오 xxhdpi 화면 전화

BitmapFactory.decodeResource(imageView.getResources(), 
          imageRes,mBitmapFactoryOptions); 
  • (넥서스 5)에있어서 실행하는 추가적인 30-50 밀리 초가 소요; hdpi 스크린 전화 (samsung I9100) 이외에.

  • 하나의 이미지 만로드하는 것은 큰 문제가 아니지만 프레임 애니메이션을 만드는 동안 많은 차이가있었습니다.

  • 나는 screens_support을 확인했지만 어떤 안드로이드 시스템이 그것을 어떻게 피했는지 전혀 모른다.

도움 주셔서 감사합니다.

답변

0

기기에 리소스가 없지만 다른 화면 용 리소스가있는 경우 Android에 맞게 조정할 수 있습니다. drawable에 관해서, 안드로이드는 당신의 DPI/imageDPI 비율에 의해 이미지를 rescales합니다. 이것은 드로어 블로드가 느려질 수있는 이유입니다. 프로파일 러를 사용하고 밀접하게 로딩 작업을 보는 것을 확인할 수 있습니다.

사용하지 않으려면 사용하려는 모든 화면 구성에 이미지를 제공하거나 애셋 폴더를 사용하여 수동으로 이미지를로드해야합니다.

+0

다른 하드웨어가 다르게 수행한다는 점도 고려하십시오 ... 2 센트입니다. –

+0

도움에 감사드립니다. @ 밥, "다른 하드웨어가 다르게 작동합니다"에 대해 더 구체적으로 설명해 주시겠습니까? 내게 안전하지 않은 느낌이 든다. – springrider

+0

모든 장치는 다른 CPU를 가지고있다. (이것은 심장이다. 실제로 모든 컴퓨터의 뇌이다.) 일부는 GPU (Graphical CPU)조차 가지고 있지 않습니다. 그리고 다른 클럭 속도. 자신의 장치를 근근이 칠하고 그 장치를 과소/부족할 수있는 사용자는 말할 필요가 없습니다. 따라서 모든 장치는 다른 장치와 비교할 때 좋거나 나 빠릅니다. ** 성능이 낮은 하드웨어 **에서 제대로 실행되도록 코드를 최적화하면 ** 전원 장치에서 더 뛰어난 성능을 발휘할 것입니다. –