首页 > 解决方案 > 在方向更改时将 Android 视图(布局)移动到特定点(仅旋转一些视图而不是整个活动)

问题描述

Asslam o ALaikm(问候,最良好的祝愿)为你们所有人!

我无法嵌入图像,请检查应用程序(类似)

https://play.google.com/store/apps/details?id=com.jkfantasy.gpsmapcamera

我遇到了一些问题,需要您的帮助(谢谢/提前),我正在尝试开发一个显示位置和时间等的 android 相机应用程序检查图像**问题是在方向更改时包含地图和其他信息的视图应该如图所示移动到相关边的底部**

[在此处输入图像描述][2] 如果您也可以尝试,请提供帮助,创建一个新的单独布局(匹配父级,匹配父级)包含地图和其他布局卡片视图,但在旋转它时周围有黑色空间

我尝试并得到了什么!

我已经实现了更改侦听器和方向更改旋转卡视图并将边距设置到我正在测试的设备上的点,但在不同的设备上它出错了。XML代码是!

Java代码是!

@Override
                public void onSimpleOrientationChanged(int orientation) {
                    int angle = 0;

                    if (orientation == 4) {

                    RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)cardView.getLayoutParams();
                    layoutParams.width = rlheight;
                    layoutParams.setMargins(-rlwidth/2-20, 0, 0, rlwidth/2+15);
                    cardView.setLayoutParams(layoutParams);
                    cardView.setRotation(90);
                    angle= 90;
                    } 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:id="@+id/main"
    android:layout_height="fill_parent">
    <LinearLayout
        android:id="@+id/idabovemanu"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_35sdp"
        android:background="@color/black"
        android:orientation="horizontal"
        android:gravity="center"
        android:weightSum="5"
        >


        <LinearLayout
            android:id="@+id/idabovelocation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_25sdp"
                android:layout_height="@dimen/_25sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_12sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_20sdp"
                    android:layout_height="@dimen/_20sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_10sdp"
                    >

                    <ImageView
                        android:layout_width="@dimen/_15sdp"
                        android:layout_height="@dimen/_15sdp"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_location" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/idabovesetting"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_25sdp"
                android:layout_height="@dimen/_25sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_12sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_20sdp"
                    android:layout_height="@dimen/_20sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_10sdp"
                    >

                    <ImageView
                        android:layout_width="@dimen/_15sdp"
                        android:layout_height="@dimen/_15sdp"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_text" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>

        </LinearLayout>

        <ImageView
            android:layout_width="@dimen/_30sdp"
            android:layout_height="@dimen/_30sdp"
            android:layout_weight="1" />

        <LinearLayout
            android:id="@+id/idabovecamera"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_25sdp"
                android:layout_height="@dimen/_25sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_12sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_20sdp"
                    android:layout_height="@dimen/_20sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_10sdp"
                    >

                    <ImageView
                        android:layout_width="@dimen/_15sdp"
                        android:layout_height="@dimen/_15sdp"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_flip_camera" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:id="@+id/idabovelayers"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_25sdp"
                android:layout_height="@dimen/_25sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_12sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_20sdp"
                    android:layout_height="@dimen/_20sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_10sdp"
                    >

                    <ImageView
                        android:layout_width="@dimen/_15sdp"
                        android:layout_height="@dimen/_15sdp"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_layers" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>

        </LinearLayout>
    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/idrlayout"
        >

        <com.otaliastudios.cameraview.CameraView
            android:id="@+id/idcam"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:cameraPreview="glSurface"
            >
            <ImageView
                android:id="@+id/idwater"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom|end"
                app:layout_drawOnPreview="false"
                android:contentDescription="watermark" />
        </com.otaliastudios.cameraview.CameraView>
        <androidx.cardview.widget.CardView
            android:id="@+id/idcardview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/_3sdp"
            android:layout_marginRight="@dimen/_3sdp"
            android:layout_marginBottom="@dimen/_3sdp"
            app:cardCornerRadius="@dimen/_5sdp"
            android:layout_alignParentBottom="true"
            >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal"
            android:id="@+id/idlinear"
            >

            <fragment
                android:id="@+id/map"
                android:name="com.google.android.gms.maps.SupportMapFragment"
                android:layout_width="@dimen/_100sdp"
                android:layout_height="@dimen/_100sdp"
                />
            <LinearLayout
                android:id="@+id/idlayoutdetails"
                android:layout_width="0dp"
                android:layout_height="@dimen/_100sdp"
                android:layout_weight="1"
                android:layout_marginLeft="@dimen/_1sdp"
                android:background="@color/blacktrns"
                android:orientation="vertical">


                <TextView
                    android:id="@+id/idmainadress"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="@dimen/_6ssp"
                    android:gravity="center"
                    android:textColor="@color/white"
                    android:text="@string/adress"
                    android:layout_marginTop="@dimen/_5sdp"
                    android:singleLine="true"/>
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/_300sdp"
                    android:id="@+id/imgview"
                    android:textColor="@color/white"
                    android:visibility="gone"/>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/_10sdp"
                    android:orientation="horizontal"
                    android:weightSum="2"
                    >
                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:gravity="center"
                        android:layout_weight="1">

                        <TextView
                            android:id="@+id/idtvcity"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textSize="@dimen/_8ssp"
                            android:text="Sahiwal"
                            android:textColor="@color/white"
                            />
                        <TextView
                            android:id="@+id/idtvprovince"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textSize="@dimen/_8ssp"
                            android:text="Province"
                            android:textColor="@color/white"
                            android:layout_marginTop="@dimen/_5sdp"
                            />


                        <TextView
                            android:id="@+id/idtvcountry"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textSize="@dimen/_8ssp"
                            android:text="Country"
                            android:textColor="@color/white"
                            android:layout_marginTop="@dimen/_5sdp"
                            />

                        <TextView
                            android:id="@+id/date"
                            android:layout_width="match_parent"
                            android:layout_height="24dp"
                            android:layout_marginTop="@dimen/_10sdp"
                            android:gravity="center"
                            android:textColor="@color/white"
                            android:text="09-03-2021 (tue)"
                            android:textSize="@dimen/_8ssp" />
                    </LinearLayout>

                    <View
                        android:layout_width="@dimen/_1sdp"
                        android:layout_height="@dimen/_35sdp"
                        android:background="@color/white"
                        />


                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:textSize="@dimen/_8ssp"
                        android:orientation="vertical"
                        android:gravity="center"
                        android:layout_weight="1">


                        <TextView
                            android:id="@+id/idtvname"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textSize="@dimen/_8ssp"
                            android:drawableLeft="@drawable/name"
                            android:drawablePadding="@dimen/_10sdp"
                            android:textColor="@color/white"
                            android:text="Imtiaz Hospital Swl"
                            />
                        <TextView
                            android:id="@+id/idtvemployecode"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textSize="@dimen/_8ssp"
                            android:drawableLeft="@drawable/ic_coding"
                            android:drawablePadding="@dimen/_10sdp"
                            android:text="Imtiaz Hospital Swl"
                            android:textColor="@color/white"
                            android:layout_marginTop="@dimen/_5sdp"
                            />


                        <TextView
                            android:id="@+id/idtvhospitalname"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textSize="@dimen/_8ssp"
                            android:textColor="@color/white"
                            android:drawableLeft="@drawable/ic_hospital"
                            android:drawablePadding="@dimen/_10sdp"
                            android:text="Imtiaz Hospital Swl"
                            android:layout_marginTop="@dimen/_5sdp"
                            />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="24dp"
                            android:layout_marginTop="@dimen/_10sdp"
                            android:gravity="center"
                            android:text="09:15 am"
                            android:textColor="@color/white"
                            android:textSize="@dimen/_8ssp"
                            />


                    </LinearLayout>

                </LinearLayout>


            </LinearLayout>



        </LinearLayout>

        </androidx.cardview.widget.CardView>

    </RelativeLayout>

    <LinearLayout
        android:id="@+id/idbottommanu"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_50sdp"
        android:background="@color/black"
        android:orientation="horizontal"
        android:gravity="center"
        android:weightSum="5"
        >

        <LinearLayout
            android:id="@+id/idpersonalinf"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical"
            >

        <androidx.cardview.widget.CardView
            android:layout_width="@dimen/_30sdp"
            android:layout_height="@dimen/_30sdp"
            android:innerRadius="0dp"
            android:shape="ring"
            android:backgroundTint="@color/blue"
            app:cardCornerRadius="@dimen/_15sdp">

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_25sdp"
                android:layout_height="@dimen/_25sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:layout_gravity="center"
                android:backgroundTint="@color/white"
                app:cardCornerRadius="@dimen/_12sdp"
                >

                <ImageView
                    android:layout_width="@dimen/_20sdp"
                    android:layout_height="@dimen/_20sdp"
                    android:layout_gravity="center"
                    android:background="@drawable/ic_personal" />

            </androidx.cardview.widget.CardView>

        </androidx.cardview.widget.CardView>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Per_info"
                android:textSize="@dimen/_9ssp"
             android:textColor="@color/white"
                />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/idgallery"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_30sdp"
                android:layout_height="@dimen/_30sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_15sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_25sdp"
                    android:layout_height="@dimen/_25sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_12sdp"
                    >

                    <ImageView
                        android:layout_width="13dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_gallery" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Gallery"
                android:textSize="@dimen/_8ssp"
                android:textColor="@color/white"
                />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/idcamera"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center">



        <androidx.cardview.widget.CardView
            android:layout_width="@dimen/_45sdp"
            android:layout_height="@dimen/_45sdp"
            android:innerRadius="0dp"
            android:shape="ring"
            app:cardCornerRadius="@dimen/_22sdp">

                <ImageView
                    android:layout_width="@dimen/_35sdp"
                    android:layout_height="@dimen/_35sdp"
                    android:layout_gravity="center"
                    android:background="@drawable/ic_camera" />

        </androidx.cardview.widget.CardView>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/idsetting"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_30sdp"
                android:layout_height="@dimen/_30sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_15sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_25sdp"
                    android:layout_height="@dimen/_25sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_12sdp"
                    >

                    <ImageView
                        android:layout_width="@dimen/_20sdp"
                        android:layout_height="@dimen/_20sdp"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_setting" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="setting"
                android:textColor="@color/white"
                />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/idrateus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical"
            >

            <androidx.cardview.widget.CardView
                android:layout_width="@dimen/_30sdp"
                android:layout_height="@dimen/_30sdp"
                android:innerRadius="0dp"
                android:shape="ring"
                android:backgroundTint="@color/blue"
                app:cardCornerRadius="@dimen/_15sdp">

                <androidx.cardview.widget.CardView
                    android:layout_width="@dimen/_25sdp"
                    android:layout_height="@dimen/_25sdp"
                    android:innerRadius="0dp"
                    android:shape="ring"
                    android:layout_gravity="center"
                    android:backgroundTint="@color/white"
                    app:cardCornerRadius="@dimen/_12sdp"
                    >

                    <ImageView
                        android:layout_width="@dimen/_20sdp"
                        android:layout_height="@dimen/_20sdp"
                        android:layout_gravity="center"
                        android:background="@drawable/ic_rate" />
                </androidx.cardview.widget.CardView>

            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Rate us"
                android:textColor="@color/white"
                />

        </LinearLayout>
    </LinearLayout>
</LinearLayout>``` 


  [1]: https://i.stack.imgur.com/QONgL.jpg

标签: androidvieworientationscreen-orientationscreen-rotation

解决方案


推荐阅读