0

Android 2.0以降で、トリミングされていない連絡先画像の写真を全画面画像の背景として設定したいと思います。次のコードを使用してトリミングされたサムネイルを取得しますが、ギャラリーで写真が全画面表示になっているため、この写真にアクセスするにはどうすればよいですか

このコードはトリミングされたサムネイルを提供します。トリミングされていないフルスクリーンを取得するにはどうすればよいですか

       public static Bitmap loadContactPhoto(ContentResolver cr, long  id) {
        Uri uri =             ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
        InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
        if (input == null) {
            return null;
        }
        return BitmapFactory.decodeStream(input);
    }
4

1 に答える 1

1

Androidのドキュメントは言う

連絡先のプライマリ写真を含む、単一の連絡先の読み取り専用サブディレクトリ。写真は最大 2 つの方法で保存できます。デフォルトの「写真」はサムネイル サイズの画像で、データ行に直接保存されます。「表示写真」は、存在する場合、ファイルとして保存されるより大きなバージョンです。

再びドキュメントから

public InputStream openDisplayPhoto(long contactId) {
     Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
     Uri displayPhotoUri = Uri.withAppendedPath(contactUri, Contacts.Photo.DISPLAY_PHOTO);
     try {
         AssetFileDescriptor fd =
             getContentResolver().openAssetFileDescriptor(displayPhotoUri, "r");
         return fd.createInputStream();
     } catch (IOException e) {
         return null;
     }
 }
于 2012-05-26T21:35:37.053 に答える