我有一项使用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;
}
这似乎是我对请求它和显示它的自动建议管理器之间的文件进行控制的唯一地方。