Retina图标链接与Google Drive API

10

我正在获取文件夹中的文件列表。响应会包含每个返回文件的iconLink,该图标为16x16像素。

是否有人知道检索视网膜图片的方法?或者另一种检索更大图标图像的方法?

https://developers.google.com/drive/v2/reference/files

顶部:Google Drive 用户界面

底部:Google Drive API 集成

示例


你目前做了什么?在每个返回的文件中,你是否尝试将图标图像调整为更大的图标? - Android Enthusiast
返回的图标URL指向一个16x16像素的图像。(例如https://ssl.gstatic.com/docs/doclist/images/icon_12_pdf_list.png)。我尝试添加@2x来查看是否可用,但迄今为止没有成功。 - Mark Mooibroek
你找到解决方案了吗? - Daniel Dudas
还没有,可能我们会通过悬赏得到答案。 - Mark Mooibroek
3个回答

3
好消息是,虽然没有正式记录,但驱动程序确实具有2倍分辨率的图标。坏消息是它们的文件名不一致;例如,您在评论中链接的图标在此处提供32px版本:ssl.gstatic.com/docs/doclist/images/mediatype/icon_3_pdf_x32.png 现在这里是我的解决方案,它并不完美,但可以暂时解决问题:
function getIcons($file_type)
{ 
    $icons = [
        'pdf' => [
            'icon' => 'icon_12_pdf_list.png',
            'retina' => 'icon_3_pdf_x32.png'
         ],
        'document' => [
            'icon' => 'icon_1_document_x16.png',
            'retina' => 'icon_1_document_x32.png'
        ],
        'image' => [
            'icon' => 'con_1_image_x16.png',
            'retina' => 'icon_1_image_x32.png'
        ],
        'word' => [
            'icon' => 'icon_1_word_x16.png',
            'retina' => 'icon_1_word_x32.png'
        ],
        'text' => [
            'icon' => 'icon_1_text_x16.png',
            'retina' => 'icon_1_text_x32.png'
        ],
        'spreadsheet' => [
            'icon' => 'icon_1_spreadsheet_x16.png',
            'retina' => 'icon_1_spreadsheet_x32.png'
        ],
        'form' => [
            'icon' => 'icon_2_form_x16.png',
            'retina' => 'icon_2_form_x32.png'
        ],
        'audio' => [
            'icon' => 'icon_1_audio_x16.png',
            'retina' => 'icon_1_audio_x32.png'
        ]
    ];

    return isset($icons[$file_type]) ? $icons[$file_type] : $icons['text'];
}

我之所以说它能够运行一段时间,是因为我假设文件名中例如pdf图标文件名中的_3_是版本号。因此,如果Google在未来再次更新其图标,则此解决方案可能会失效。


3

我正在使用Drive REST API,观察到iconLink属性具有明确的模式。 "https://drive-thirdparty.googleusercontent.com/" + size + mimetype 默认大小为16。因此,在将您的图标添加到图像之前,请使用此代码:

    String iconLink = (String) jsonObject.get("iconLink");
    iconLink=iconLink.replace("16","128");

请查看以下两个链接: https://drive-thirdparty.googleusercontent.com/128/type/application/pdf https://drive-thirdparty.googleusercontent.com/16/type/application/pdf

这些链接引用的是PDF文件。

0

看起来各个版本都添加/存在x128图像:

版本1

版本2

版本3

最好用x128替换获取的iconLink中的x16


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接