1

Amazon インスタンスから画像を収集し、フォト ギャラリーのように横方向にスクロールできる Android アプリの作成を目指しています。

現在、フラグメントをスクロールするアプリを持っていますが、これらのフラグメント内にイメージビューを配置する方法がわかりません

私はAndroidに比較的慣れていないので、このタスクを達成するのに役立つライブラリが利用できるかどうか疑問に思っていましたか? または、インスタンスから画像をダウンロードし、画像ビューに配置してフラグメントに添付する方法はありますか?

4

1 に答える 1

6

1) Amazon AWS SDKをここからダウンロードします。aws-android-sdk jar lib ファイルをプロジェクトに追加します。

2)このライブラリをダウンロードしてください。あなたのプロジェクトにも追加してください。IOUtils は、バイト配列を簡単に取得するのに役立ちます。

3) AWS からセキュリティ認証情報を取得し、定数としてコードに入れます。

4) SDK の例のように AmazonS3Client を初期化します。

private AmazonS3Client s3Client = new AmazonS3Client(
            new BasicAWSCredentials(AWS_KEY,
                    AWS_SECRET));

5) AsyncTask サブクラスを作成して、別のスレッドでダウンロードを管理します。このクラスに慣れていない場合は、こちらで詳細を確認してください。

doInBackground メソッドで、取得する画像のリストを取得する必要がある場合は、バケット内のファイルのリストを取得して、キーを調べることができます。

ObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest().withBucketName(<your bucket name>));
List<S3ObjectSummary> objectSummaries = objectListing.getObjectSummaries();
for (S3ObjectSummary summary : objectSummaries) {
    String key = summary.getKey();
    // do something with the key
}

6) 次に、このコードのチャンクを追加して、バイトをダウンロードし、Bitmap オブジェクトにスローします。

S3ObjectInputStream content = s3Client.getObject(<your bucket name>, <the key of the targeted file>).getObjectContent();
byte[] bytes = IOUtils.toByteArray(content);
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

7) おそらく onPostExecute またはそこから呼び出される何かで、生成されたビットマップを imageView.setImageBitmap(bitmap); を使用して ImageView に追加します。

于 2013-03-07T02:31:26.543 に答える