2014-10-22 1 views
1

가능한 가장 높은 해상도의 활동 아이콘을 장치의 다른 앱에서 가져오고 싶지만 수행 방법을 파악할 수 없습니다. ......내 런쳐 - 응용 프로그램에서 다른 응용 프로그램의 high-dpi 활동 아이콘을 얻는 방법은 무엇입니까?

내 앱에서는 목록에서 하나의 활동을 선택할 수 있습니다. 장치에서 사용할 수있는 모든 활동과 해당 대상은 onActivityResult로 돌아갑니다.

Drawable icon = null; 
    ComponentName componentName = intent.getComponent(); 
    String packageName = componentName.getPackageName();   
    PackageManager pm = this.getPackageManager(); 
    icon = pm.getActivityIcon(intent); 

내가 다음과 같이 최고 해상도로 앱 아이콘을 얻을 수 있습니다 :이 내가 이런 활동 아이콘을 얻을 수

PackageInfo pi = pm.getPackageInfo(packageName, 0); 
Context otherAppCtx = this.createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY); 

int displayMetrics[] = { DisplayMetrics.DENSITY_TV, DisplayMetrics.DENSITY_HIGH, DisplayMetrics.DENSITY_XHIGH, DisplayMetrics.DENSITY_XXXHIGH }; 

for (int displayMetric : displayMetrics) 
{ 
    try 
    { 
      Drawable d = otherAppCtx.getResources().getDrawableForDensity(pi.applicationInfo.icon, displayMetric); 


      if (d != null) 
      { 
       icon = d; 
      } 
    } 
    catch (Resources.NotFoundException e) 
    { 

      continue; 
    } 
} 

그게 좋은를하지만 난 활동 아이콘을 얻을 싶어 해상도가 가장 높은 앱 아이콘이 아닙니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?

미리!

+0

활동 아이콘으로 응용 프로그램 아이콘을 의미합니까? – tyczj

+0

이 질문은 저작권을 침해하는 것이므로 주제와 관련이없는 것으로 보입니다. –

+0

@tyczj 활동 아이콘이 없습니다. 예 : android의 contacs-app에는 여러 가지 활동이 있습니다. 그 중 하나는 전화 활동입니다. 전화 활동은 전화 기호 (게시 된 코드의 첫 번째 부분에 있음)가 있습니다. 하지만 app-icon은 "people"-icon입니다 (코드의 두 번째 부분에 있습니다). – treesoft

답변

2

당신은 올바른 길을 가고 있습니다. 단지 대신 ActivityInfo을 사용해야합니다. 예 : 당신은 여기서 (하나가 설정되어있는 경우)

Drawable icon = null; 
ComponentName componentName = intent.getComponent(); 
String packageName = componentName.getPackageName();   
PackageManager pm = this.getPackageManager(); 
icon = pm.getActivityIcon(intent); 

대신 드로어 블을 얻는 아이콘 리소스를 얻을 :

ComponentName componentName = intent.getComponent(); 
ActivityInfo ai = this.getPackageManager().getActivityInfo(componentName, 0); 
int iconResId = ai.icon; 

는 그런 다음 밀도를 해결하기 위해 두 번째 방법을 사용할 수 있어야합니다 .

+1

나는 그것이 가까웠다 고 느꼈다. 그러나 ..... 쉬웠다. ...) 이것과 또한 명확하고 정확한 설명! 건배! ;) – treesoft

+0

@ maltonic42 좋아요! :) 귀하의 문제가 해결 된 경우이를 승인 된 것으로 표시하십시오. 감사! – kcoppock

+0

@ kcoppock : 문제 없음, 상황 만;) – treesoft

관련 문제