Androidでプログラムでアプリケーションアイコンを変更するにはどうすればよいですか?

systempuntoout

プログラムから直接アプリケーションアイコンを変更することはできますか?つまり、フォルダを
変更icon.pngres\drawableます。
ユーザーがプログラムからアプリケーションのアイコンを変更できるようにしたいので、次回はランチャーで以前に選択したアイコンが表示されます。

jboi

これは古い質問ですが、Androidの明示的な機能がないため、引き続きアクティブです。そして、Facebookの人たちは回避策を見つけました-どういうわけか。今日、私は自分に合った方法を見つけました。完璧ではありませんが(この回答の最後にある備考を参照)、機能します。

主なアイデアは、ホーム画面のランチャーによって作成されたアプリのショートカットのアイコンを更新することです。ショートカットアイコンの何かを変更したいときは、最初にそれを削除して、新しいビットマップで再作成します。

これがコードです。ボタンが付いていますincrement押すと、ショートカットは新しいカウント番号を持つショートカットに置き換えられます。

まず、マニフェストに次の2つの権限が必要です。

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

次に、ショートカットをインストールおよびアンインストールするために、この2つの方法が必要です。このshortcutAddメソッドは、数値を含むビットマップを作成します。これは、実際に変化することを示すためだけのものです。あなたはおそらくその部分を何かで変えたいと思うでしょう、あなたはあなたのアプリで欲しいです。

private void shortcutAdd(String name, int number) {
    // Intent to be send, when shortcut is pressed by user ("launched")
    Intent shortcutIntent = new Intent(getApplicationContext(), Play.class);
    shortcutIntent.setAction(Constants.ACTION_PLAY);

    // Create bitmap with number in it -> very default. You probably want to give it a more stylish look
    Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
    Paint paint = new Paint();
    paint.setColor(0xFF808080); // gray
    paint.setTextAlign(Paint.Align.CENTER);
    paint.setTextSize(50);
    new Canvas(bitmap).drawText(""+number, 50, 50, paint);
    ((ImageView) findViewById(R.id.icon)).setImageBitmap(bitmap);

    // Decorate the shortcut
    Intent addIntent = new Intent();
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);

    // Inform launcher to create shortcut
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    getApplicationContext().sendBroadcast(addIntent);
}

private void shortcutDel(String name) {
    // Intent to be send, when shortcut is pressed by user ("launched")
    Intent shortcutIntent = new Intent(getApplicationContext(), Play.class);
    shortcutIntent.setAction(Constants.ACTION_PLAY);

    // Decorate the shortcut
    Intent delIntent = new Intent();
    delIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    delIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);

    // Inform launcher to remove shortcut
    delIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
    getApplicationContext().sendBroadcast(delIntent);
}

そして最後に、最初のショートカットを追加し、増分カウンターでショートカットを更新する2つのリスナーがあります。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.test);
    findViewById(R.id.add).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            shortcutAdd("changeIt!", count);
        }
    });
    findViewById(R.id.increment).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            shortcutDel("changeIt!");
            count++;
            shortcutAdd("changeIt!", count);
        }
    });
}

備考:

  • この方法は、アプリがホーム画面でより多くのショートカットを制御している場合にも機能します。たとえば、に別のエクストラがありIntentます。正しい名前をアンインストールして再インストールするために、異なる名前が必要です。

  • Androidでのショートカットのプログラムによる処理はよく知られており、広く使用されていますが、公式にはサポートされていないAndroid機能です。デフォルトのランチャーで動作するようで、他の場所で試したことはありません。だから私を責めないでください、あなたがこのユーザーを受け取ったとき-「それは私のXYZ、ダブルルート、スーパーブラスト電話では動作しません」

  • ランチャーは、Toastショートカットがinstalladの場合と、ショートカットがアンインストールされ場合のを書き込みます。そのためToast、アイコンを変更するたびに2が表示されます。これは完璧ではありませんが、私のアプリの残りの部分が完璧である限り、まあ...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Androidでプログラムでアプリケーションアイコンを変更するにはどうすればよいですか?

分類Dev

実行可能ファイルをアプリケーションプログラムとして変更するにはどうすればよいですか?

分類Dev

下部ナビゲーションビューのアイコンをプログラムで変更するにはどうすればよいですか?

分類Dev

AndroidでAndroidアプリケーションアイコンを動的に変更するにはどうすればよいですか?

分類Dev

Unityランチャーでアプリケーションのアイコンを変更するにはどうすればよいですか?

分類Dev

Unityランチャーでアプリケーションのアイコンを変更するにはどうすればよいですか?

分類Dev

「アプリケーションの表示」ロゴをアイコンで変更するにはどうすればよいですか?

分類Dev

プログラムでアプリケーションのインジケータを削除するにはどうすればよいですか?

分類Dev

プログラムでアプリケーションのインジケータを削除するにはどうすればよいですか?

分類Dev

実行時にAndroidアプリケーションの名前とアイコンを変更するにはどうすればよいですか?

分類Dev

AndroidでアプリケーションのCPU使用率を(プログラムで)検出するにはどうすればよいですか?

分類Dev

コンテンツをAndroidアプリケーションにライブストリーミングするにはどうすればよいですか?

分類Dev

Androidでマテリアルコンポーネントの色をプログラムで変更するにはどうすればよいですか?

分類Dev

アプリケーションプログラムの環境PATH変数を永続的に設定するにはどうすればよいですか?

分類Dev

日食アプリケーションのアプリケーション言語をプログラムで変更するにはどうすればよいですか?

分類Dev

Mac OS Xでアプリケーションアイコンを変更するにはどうすればよいですか?

分類Dev

SwingアプリケーションのダイアログでJavaFXコンポーネントを提供するにはどうすればよいですか?

分類Dev

コルドバアプリケーションアイコンを変更するにはどうすればよいですか?

分類Dev

C ++でコンソールアプリケーションからMFCダイアログを表示するにはどうすればよいですか?

分類Dev

C ++でコンソールアプリケーションからMFCダイアログを表示するにはどうすればよいですか?

分類Dev

アプリケーションアイコンを取得するにはどうすればよいですか?

分類Dev

Swingでアプリケーションのアイコンをグローバルに設定するにはどうすればよいですか?

分類Dev

プログラムでWindowsストアアプリケーションを起動するにはどうすればよいですか?

分類Dev

カスタムPHPアプリケーションからWordPress投稿をプログラムで作成するにはどうすればよいですか?

分類Dev

InstallShieldインストールプロセス中にアプリケーション設定を変更するにはどうすればよいですか?

分類Dev

Windows Phoneアプリケーションバーのアイコンの色を変更するにはどうすればよいですか?

分類Dev

openshiftオンラインノードアプリケーションログをローカルで表示するにはどうすればよいですか?

分類Dev

Javaのデフォルトのアプリケーションアイコンを変更するにはどうすればよいですか?

分類Dev

アプリケーションアイコンを設定/変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    Androidでプログラムでアプリケーションアイコンを変更するにはどうすればよいですか?

  2. 2

    実行可能ファイルをアプリケーションプログラムとして変更するにはどうすればよいですか?

  3. 3

    下部ナビゲーションビューのアイコンをプログラムで変更するにはどうすればよいですか?

  4. 4

    AndroidでAndroidアプリケーションアイコンを動的に変更するにはどうすればよいですか?

  5. 5

    Unityランチャーでアプリケーションのアイコンを変更するにはどうすればよいですか?

  6. 6

    Unityランチャーでアプリケーションのアイコンを変更するにはどうすればよいですか?

  7. 7

    「アプリケーションの表示」ロゴをアイコンで変更するにはどうすればよいですか?

  8. 8

    プログラムでアプリケーションのインジケータを削除するにはどうすればよいですか?

  9. 9

    プログラムでアプリケーションのインジケータを削除するにはどうすればよいですか?

  10. 10

    実行時にAndroidアプリケーションの名前とアイコンを変更するにはどうすればよいですか?

  11. 11

    AndroidでアプリケーションのCPU使用率を(プログラムで)検出するにはどうすればよいですか?

  12. 12

    コンテンツをAndroidアプリケーションにライブストリーミングするにはどうすればよいですか?

  13. 13

    Androidでマテリアルコンポーネントの色をプログラムで変更するにはどうすればよいですか?

  14. 14

    アプリケーションプログラムの環境PATH変数を永続的に設定するにはどうすればよいですか?

  15. 15

    日食アプリケーションのアプリケーション言語をプログラムで変更するにはどうすればよいですか?

  16. 16

    Mac OS Xでアプリケーションアイコンを変更するにはどうすればよいですか?

  17. 17

    SwingアプリケーションのダイアログでJavaFXコンポーネントを提供するにはどうすればよいですか?

  18. 18

    コルドバアプリケーションアイコンを変更するにはどうすればよいですか?

  19. 19

    C ++でコンソールアプリケーションからMFCダイアログを表示するにはどうすればよいですか?

  20. 20

    C ++でコンソールアプリケーションからMFCダイアログを表示するにはどうすればよいですか?

  21. 21

    アプリケーションアイコンを取得するにはどうすればよいですか?

  22. 22

    Swingでアプリケーションのアイコンをグローバルに設定するにはどうすればよいですか?

  23. 23

    プログラムでWindowsストアアプリケーションを起動するにはどうすればよいですか?

  24. 24

    カスタムPHPアプリケーションからWordPress投稿をプログラムで作成するにはどうすればよいですか?

  25. 25

    InstallShieldインストールプロセス中にアプリケーション設定を変更するにはどうすればよいですか?

  26. 26

    Windows Phoneアプリケーションバーのアイコンの色を変更するにはどうすればよいですか?

  27. 27

    openshiftオンラインノードアプリケーションログをローカルで表示するにはどうすればよいですか?

  28. 28

    Javaのデフォルトのアプリケーションアイコンを変更するにはどうすればよいですか?

  29. 29

    アプリケーションアイコンを設定/変更するにはどうすればよいですか?

ホットタグ

アーカイブ