4

特定のアイコンに関連付けられているすべてのファイルタイプ。

ここで、somefilename.xxxを選択している場合、不明なファイルのデフォルトアイコンではなく、*。xxxに関連付けられているアイコンを選択するにはどうすればよいでしょうか。

元の質問

.txtまたは.docまたは.pngファイルアイコンを取得するにはどうすればよいですか?たとえば、今私はアイコンfilename.pdfを取得する方法を選択していますか?filename.pdf例えば

File f = new File("filename.pdf");

私のファイル名はfilename.pdfです。このファイルアイコン(Adobereaderアイコン)を取得する方法。

4

3 に答える 3

6

PackageManager.queryIntentActivitiesを使用してみてください :

final Intent innt = new Intent(Intent.ACTION_VIEW);
innt.setData(fileUri);
innt.setType("application/pdf");

final List<ResolveInfo> matches = getPackageManager().queryIntentActivities(innt, 0);
for (ResolveInfo match : matches) {
    final Drawable icon = match.loadIcon(getPackageManager());
    final CharSequence label = match.loadLabel(getPackageManager());
}
于 2012-06-28T05:38:32.410 に答える
3

まず、どのファイルにもアイコンが含まれていないと言いたいのですが、一般的に、オフィスがインストールされていない場合は、ドキュメントアイコンやパワーポイントアイコンは表示されません

そのため、そのシステムはアイコンを特定のファイルタイプに関連付けるように機能するので、この方法で実行します

目標を達成するには、使用することが予想されるすべてのアイコンを含めることを強くお勧めします。たとえば、 some.pngを選択した場合は、拡張子を確認し、png.icoをこのファイルアイコンに関連付けます。

このようにすると、すべての種類のファイルに関連付ける必要があります。

編集1:

Web上のアイコンを簡単に見つけて、ドローアブルフォルダに追加します。ファイル名ごとに拡張子を抽出し、拡張子に応じてアイコンを設定します。これにより、目標を達成できます。

編集2:

目標を達成するには、次のようにします。

  1. 簡単にするために、すべてのアイコンファイルをres \drawableフォルダーに追加します。すべてのアイコンファイル名を拡張子として設定します。ドキュメント拡張子にはdoc.pngを使用します。 for easyness

  2. 次に、すべてのファイル拡張子をアイコンファイルにマップし、ファイル拡張子を確認してから、次のようにします。

String ext = "Something";

switch(ext)    
{    
case "doc":    
    image.setImageResource(R.drawable.doc);    
    break;     
case "exe":    
    image.setImageResource(R.drawable.exe);
    break;
default :
    image.setImageResource(R.drawable.default);    
}
于 2012-06-28T05:45:39.440 に答える
1

パスを取り、その名前のファイル拡張子によって、ドローアブルに対応する関数を作成できます。

fun getFileTypeIcon(path: String): Int {
    val file = File(path)
    val ext = MimeTypeMap.getFileExtensionFromUrl(file.name)
    Log.i("ImagesExt", "$path ----> $ext")
    return when (".$ext") {
        ".png", ".jpg", ".jpeg", ".gif", ".bmp" -> R.drawable.image
        ".mp3", ".wav", ".ogg", "midi" -> R.drawable.audio
        ".mp4", ".rmvb", ".avi", ".flv", ".3gp" -> R.drawable.video
        ".jsp", ".html", ".htm", ".js", ".php" -> R.drawable.web
        ".txt", ".c", ".cpp", ".xml", ".py", ".json", ".log" -> R.drawable.file
        ".xls", ".xlsx" -> R.drawable.file
        ".doc", ".docx" -> R.drawable.file
        ".ppt", ".pptx" -> R.drawable.file
        ".pdf" -> R.drawable.pdf
        ".jar", ".zip", ".rar", ".gz" -> R.drawable.zip
        ".apk" -> R.drawable.apk
        else -> R.drawable.file
    }
}
于 2020-05-27T15:31:45.973 に答える