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;
}
これは、自動提案マネージャーがファイルを要求してから表示されるまでの間、ファイルを制御できる唯一の場所のようです。