【问题标题】:doc file need to display doc logo near file name like whatsappdoc文件需要在文件名附近显示doc徽标,例如whatsapp
【发布时间】:2019-01-23 01:37:36
【问题描述】:

我尝试在我的聊天应用程序(如 whatsapp)中与其他人共享文档文件。这里我想在文件名附近显示文件类型标志我们共享的文件类型。如果是 pdf 文件 pdf 标志,如果是 doc 文件需要在文件名附近显示 doc 标志。我怎么能动态地做。任何默认模块都在那里

【问题讨论】:

  • 没有默认模块,将你的应用支持的所有文件资源捆绑在drawable中并检查扩展名并相对放置图标

标签: java android chat whatsapp


【解决方案1】:

我遇到了这个问题,这是我的解决方案:

从文件 URI 检测 MIME 类型

public static String getMimeType(Context context, Uri uri) {
        String mimeType;
        if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
            ContentResolver cr = context.getApplicationContext().getContentResolver();
            mimeType = cr.getType(uri);
        } else {
            String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri
                    .toString());
            mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
                    fileExtension.toLowerCase());
        }
        return mimeType;
}

在您的应用中定义支持的 MIME 类型

public final class MIMEType {
    public static final String IMAGE = "image/*";
    public static final String TEXT_PLAIN = "text/plain";
    public static final String APPLICATION_PDF = "application/pdf";
    public static final String APPLICATION_FLASH = "application/x-shockwave-flash";
    public static final String APPLICATION_OCTET_STREAM = "application/octet-stream";
    public static final String APPLICATION_DOC = "application/msword";
    public static final String APPLICATION_DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    public static final String APPLICATION_XLS = "application/vnd.ms-excel";
    public static final String APPLICATION_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    public static final String APPLICATION_PPT = "application/vnd.ms-powerpoint";
    public static final String APPLICATION_PPTX = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
}

编写方法从 MIME 类型中获取图标(徽标)资源

private int getIconResourceBasedOnMimeType(String mimeType) {
    switch (mimeType) {
        case MIMEType.TEXT_PLAIN:
            return R.drawable.ic_text_blue;
        case MIMEType.APPLICATION_PDF:
            return R.drawable.ic_pdf_blue;
        case MIMEType.APPLICATION_FLASH:
            return R.drawable.ic_swf_blue;
        case MIMEType.APPLICATION_DOC:
        case MIMEType.APPLICATION_DOCX:
            return R.drawable.ic_word_blue;
        case MIMEType.APPLICATION_XLS:
        case MIMEType.APPLICATION_XLSX:
            return R.drawable.ic_excel_blue;
        case MIMEType.APPLICATION_PPT:
        case MIMEType.APPLICATION_PPTX:
            return R.drawable.ic_pp_blue;
        case MIMEType.APPLICATION_OCTET_STREAM:
        default:
            return R.drawable.ic_binary_blue;
    }
}

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多