URLまたはファイル名/ Uriから画像をSimpleDraweeView
にロードする必要があります。Frescoを使用してファイルから正しいアスペクト比で画像をロード
これは私のxml
レイアウトです:
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
fresco:actualImageScaleType="centerCrop"
fresco:placeholderImage="@color/wait_color"
fresco:placeholderImageScaleType="centerCrop"
fresco:roundTopLeft="true"
fresco:roundTopRight="true"
fresco:roundBottomLeft="false"
fresco:roundBottomRight="false"
fresco:roundedCornerRadius="3dp" />
私は、このようなFacebookやInstagramのようなURLからイメージをロードするとき、私は画像のwidth
とheight
を取得し、それに基づいて、私は、アスペクト比を計算し、このようSimpleDraweeView
に設定します。
imageUrl = intent.getExtras().getString(KEY_IMAGE_URL);
int width = intent.getExtras().getInt(KEY_WIDTH);
int height = intent.getExtras().getInt(KEY_HEIGHT);
float aspectRatio = (float) width/height;
image.setAspectRatio(aspectRatio);
Uri uri = Uri.parse(imageUrl);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true)
.setAutoRotateEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(image.getController())
.build();
image.setController(controller);
は今、私は正しいとfilename
またはUri
を使用してSimpleDraweeView
にイメージをロードできるようにする必要がありますアスペクト比、どうしたらいいですか?
これは、私のソリューションで提案したように、「ControllerListener」を使用するよりもはるかに非効率的です。 https://stackoverflow.com/questions/33955510/facebook-fresco-using-wrap-conent/34075281#34075281をご覧ください –