android:如何旋转图像并设置它?

wztqucjr  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(295)

我有一个片段,在30%的屏幕上显示一些图像。如果image.height大于image.width,我想将图像旋转90度。但是,在该操作之后,图像并没有完全填充碎片-旋转后的“新”宽度与之前的高度匹配,因此图像仅占据碎片中间的部分。我怎样才能使它成为一个匹配的片段?我做错了什么或错过了什么?
这是没有旋转时的样子:

这是在旋转之后:

这就是我想要的:

代码如下:

@Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        setImageFittedToDisplay(view);
    }

    public void setImageFittedToDisplay(View view)    {
        int height = getDisplayMetrics().heightPixels;
        ViewGroup.LayoutParams params = view.getLayoutParams();
        params.height = ((Double) (height * 0.3)).intValue();
        view.setLayoutParams(params);

        ImageView image = view.findViewById(R.id.picture);
        image.setDrawingCacheEnabled(true);

        int w = image.getDrawable().getIntrinsicWidth();
        int h = image.getDrawable().getIntrinsicHeight();
        if(h > w) {
            image.setRotation(90f);
        }
        ViewGroup.LayoutParams imageParams = image.getLayoutParams();
        imageParams.height = ActionBar.LayoutParams.WRAP_CONTENT;
        imageParams.width = ActionBar.LayoutParams.WRAP_CONTENT;
        image.setLayoutParams(imageParams);
    }

下面是片段的.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout     
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/APOD_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
xmlns:app="http://schemas.android.com/apk/res-auto">

<ImageView
    android:id="@+id/picture"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/cool_pic"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<View
    android:id="@+id/separator"
    android:layout_width="match_parent"
    android:layout_height="10dp"
    android:background="@color/colorSeparator"
    app:layout_constraintBottom_toBottomOf="@+id/picture"
    app:layout_constraintTop_toBottomOf="@+id/picture" />

</androidx.constraintlayout.widget.ConstraintLayout>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题