在Android

时间:2016-06-06 15:56:20

标签: android android-layout

我正在开发一个使用图标和自定义循环视图的UI。根据文件https://developer.android.com/guide/practices/screens_support.html 我为hdpi,ldpi .... xxxhdpi创建了单独的可绘制文件夹。还创建了layout-sw660dp和layout-sw720dp。 Nexus 5x和谷歌nexus 10英寸平板电脑的图标缩放工作正常,但LG G3设备没有扩展。任何人都可以让我知道我做错了什么。以下是我的景观布局示例。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:id="@+id/topLayout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:keepScreenOn="true">

<com.facedetection.kv.facedetection.ui.camera.CameraSourcePreview
    android:id="@+id/preview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    >
    <!--android:onClick="onClickOnSurfaceView"        -->

    <com.facedetection.kv.facedetection.ui.camera.GraphicOverlay
        android:id="@+id/faceOverlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</com.facedetection.kv.facedetection.ui.camera.CameraSourcePreview>

<FrameLayout
    android:id="@+id/controls"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/preview"
    android:layout_alignParentBottom="true">

    <LinearLayout
        android:layout_width="@dimen/custom_rounded_view_width"
        android:layout_height="@dimen/custom_rounded_view_height"
        android:orientation="vertical"
        android:layout_alignParentRight="true"
        android:layout_gravity="end"
        >

        <com.makeramen.roundedimageview.RoundedImageView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/savedImageView"
            android:src="@drawable/hugh"
            android:scaleType="centerCrop"
            app:riv_border_width="5dip"
            app:riv_border_color="#333333"
            app:riv_mutate_background="true"
            app:riv_oval="true"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="bottom|right"

        >




        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cameraClick"
                android:src="@drawable/ic_panorama_fish_eye_black_24dp"
                android:contentDescription="@string/switch_camera"/>

        </LinearLayout>


        <LinearLayout
            android:layout_width="@dimen/custom_circle_view_width"
            android:layout_height="@dimen/custom_circle_view_height"
            android:layout_gravity="left">

            <com.facedetection.kv.facedetection.CustomView.CustomCircleView
                android:id="@+id/leftEyeView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="@dimen/custom_circle_layout_margin"
                android:layout_gravity="center"
                custom:circleColor="@color/md_blue_A700"
                custom:circleLabel=""
                custom:labelColor="@color/md_black_1000"
                custom:circleTextSize="@dimen/custom_circle_text_size"
                />

        </LinearLayout>

        <LinearLayout
            android:layout_width="@dimen/custom_circle_view_width"
            android:layout_height="@dimen/custom_circle_view_height"
            >

            <com.facedetection.kv.facedetection.CustomView.CustomCircleView
                android:id="@+id/smileyView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="@dimen/custom_circle_layout_margin"
                android:layout_gravity="center"
                custom:circleColor="@color/md_blue_A700"
                custom:circleLabel=""
                custom:labelColor="@color/md_black_1000"
                custom:circleTextSize="@dimen/custom_circle_text_size"
                />

        </LinearLayout>

        <LinearLayout
            android:layout_width="@dimen/custom_circle_view_width"
            android:layout_height="@dimen/custom_circle_view_height"
            >

            <com.facedetection.kv.facedetection.CustomView.CustomCircleView
                android:id="@+id/rightEyeView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="@dimen/custom_circle_layout_margin"
                android:layout_gravity="center"
                custom:circleColor="@color/md_blue_A700"
                custom:circleLabel=""
                custom:labelColor="@color/md_black_1000"
                custom:circleTextSize="@dimen/custom_circle_text_size"
                />

        </LinearLayout>




        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cameraSwitch"
                android:src="@drawable/ic_switch_camera_black_24dp"
                android:contentDescription="@string/switch_camera"/>
        </LinearLayout>

    </LinearLayout>



</FrameLayout>

2 个答案:

答案 0 :(得分:0)

尝试使用此library

<android.support.percent.PercentRelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentFrameLayout>

答案 1 :(得分:0)

如果这只是横向视图,那么你也应该将它作为限定符,因此它将是例如,纵向视图的layout-sw720dp-land和layout_sw720dp-port。这将导致此布局仅在设备分别处于横向模式或纵向模式时发生。

其次,请确保您在drawables文件夹中没有使用相同的图标。他们需要增加大小以与文件夹相关联(我假设如果其他屏幕正常工作,你已经有了这个)。

不确定这是否有帮助。