1

我有一个使用 Android 搜索和自动搜索建议功能的活动。

我在活动中使用的缩略图都存储在 SD 卡上(有很多),并且都是 MDPI 分辨率。

在我的活动中使用它们时,这很好,因为我可以考虑这一点并适当地缩放,但是在搜索建议视图中,缩略图似乎被假定为当前 DPI,因此缩略图在 HDPI 设备上看起来很小。

我正在使用自定义检索搜索建议视图的缩略图ContentProvider并覆盖该openFile方法 - 但是我看不出这如何让我对设置 DPI 进行任何控制,因为它只返回一个通用的ParcelFileDescriptor.

是否可以使用ParcelFileDescriptor通知 DPI 的搜索建议视图?或者还有其他可能的方法吗?我自己无法直接控制它,因为 Android 框架处理数据到自动建议视图的映射。

我的openFile方法看起来像:

public ParcelFileDescriptor openFile( Uri uri, String mode ) {
        String deletePackage = "content://" + PACKAGE_NAME + "/";
        String url = uri.toString();
        String filePath = url.substring(deletePackage.length());
        Log.d("AssetsContentProvider", "openFile: " + filePath);
        File file = new File( filePath );

        ParcelFileDescriptor parcel = null;
        try {
            parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
        } catch (FileNotFoundException e) {
            Log.e( "AssetsContentProvider", "Error finding: " + file.getPath() + "\n" + e.toString() );
        }

        return parcel;
}

这似乎是我唯一可以控制请求它的自动建议管理器和显示它之间的文件的地方。

4

0 回答 0