我的目标是创建一个 Android 应用程序,允许我从我的 Amazon 实例中收集图像,然后像照片库一样水平滚动它们。
我目前有一个滚动浏览片段的应用程序,但我不确定如何将图像视图放置在这些片段中
我对 Android 比较陌生,所以想知道是否有任何可用的库可以帮助完成这项任务?或者有没有办法从实例下载图像,将它们放在图像视图中,然后将它们附加到片段?
我的目标是创建一个 Android 应用程序,允许我从我的 Amazon 实例中收集图像,然后像照片库一样水平滚动它们。
我目前有一个滚动浏览片段的应用程序,但我不确定如何将图像视图放置在这些片段中
我对 Android 比较陌生,所以想知道是否有任何可用的库可以帮助完成这项任务?或者有没有办法从实例下载图像,将它们放在图像视图中,然后将它们附加到片段?
1) 在此处下载 Amazon AWS 开发工具包。将 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;