У меня есть действие, использующее поиск 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;
}
Кажется, это единственное место, где я могу контролировать файл между менеджером, предлагающим автоматическое предложение, и его отображением.