2010-07-21 12 views
6

Poniżej znajduje się Mój kod, aby utworzyć skrót do wybranej aplikacji. Naprawdę nie mam problemu, a aplikacja działa całkiem dobrze.Tworzenie skrótu: jak mogę pracować z rysowalnym jako Ikona?

Problemem jest to, że jestem w stanie utworzyć skrót z Ressource z mojej aplikacji:

intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); 

Ale naprawdę chciałbym z niestandardowym rozciągliwej. (Drawable myDrawable = .....)

Jak mogę to zrobić?

ResolveInfo launchable=adapter.getItem(position); 
    final Intent shortcutIntent = new Intent(); 
    ActivityInfo activity=launchable.activityInfo; 
    ComponentName name=new ComponentName(activity.applicationInfo.packageName,activity.name);  
    shortcutIntent.setComponent(name); 
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    final Intent intent = new Intent(); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    // Sets the custom shortcut's title 
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, launchable.loadLabel(pm)); 
    // Set the custom shortcut icon 
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); 

    // add the shortcut 
    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    sendBroadcast(intent); 
    finish(); 

Dziękuję dużo za każdym trop

+0

ShortcutIconResource.fromContext (pkgContext, iconId) Czy tric k! http://stackoverflow.com/questions/17339231/create-shortcut-for-thrid-party-app-is-that-possible/17561676 #17561676 – thecr0w

Odpowiedz

26

końcu znaleźć rozwiązanie; Byłem głupi, aby używać Intent.EXTRA_SHORTCUT_ICON_RESOURCE:

Oto prawidłowy kod:

Drawable iconDrawable = (....); 
BitmapDrawable bd = (BitmapDrawable) iconDrawable; 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bd.getBitmap()); 
3

nie mogę się wypowiedzieć, ponieważ mam tylko 23 reputacji, ale użyłem kodu i było użyteczne. Ale mój obraz nie skalowane poprawnie na skrót, więc znalazłam dwa ciekawe tematy, które może zakończyć rozwiązanie:

aby uzyskać odpowiedni rozmiar dla ikony skrótu: https://stackoverflow.com/a/19003905/3741926

przeskalowanie rozciągliwej (stosując odpowiedni rozmiar obliczoną z poprzedniej funkcji) https://stackoverflow.com/a/10703256/3741926

ze wszystkim, co mam skrót z poprawnie skalowane ikony, mam nadzieję, że to pomoże