【发布时间】:2016-02-12 12:47:58
【问题描述】:
在我的应用程序中,我有一个将图像加载到位于屏幕中心的 ImageView 的活动。图片先缩放到适合屏幕大小,然后在ImageView的bitmap设置好后,ImageView再resize到和Bitmap一样的大小。
ImageView imageView = (ImageView) galleryActivity.findViewById(R.id.selectedImage);
Bitmap image = fileList.get(displayedImageIndex).loadScaledImage();
imageView.setImageBitmap(image);
imageView.getLayoutParams().width = image.getWidth();
imageView.getLayoutParams().height = image.getHeight();
imageView.requestLayout();
问题是,ImageView 调整大小后,不再居中在屏幕中间,而是对齐到其父级的顶部。我尝试了 imageView.setY 和 imageView.setTranslationY 来尝试将其移回中心,但它们都没有重新定位视图。有什么办法可以让 ImageView 在调整大小后保持在父级的中心对齐?
这是布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/AppTheme"
android:gravity="center"
android:layout_gravity="center">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/selectedImage"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:onClick="toggleActionBar" />
</RelativeLayout>
【问题讨论】:
-
发布您的布局。你绝对可以让它居中,但你如何使用它会改变最好的方式。但它可能是你想要的重力或 layout_gravity。
标签: android bitmap android-imageview