2016-08-23 64 views
0

我創建了我的Android應用程序。該應用程序是完整的,但它是一個問題:當我在其他智能手機上安裝此應用程序時,通常在屏幕中的對象重疊或不在原始位置。 我的IDE的是Android Studio 2.2中當我更換手機時,我的應用看起來不同比例

<RelativeLayout 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" 
    > 

    <pl.pawelkleczkowski.customgauge.CustomGauge 
     android:id="@+id/gaugePH" 
     android:layout_width="180dp" 
     android:layout_height="180dp" 
     android:paddingBottom="5dp" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:paddingTop="5dp" 
     app:gaugePointStartColor="@color/md_red_900" 
     app:gaugePointEndColor="@color/md_red_900" 
     app:gaugePointSize="5" 
     app:gaugeStartAngle="135" 
     app:gaugeStrokeCap="ROUND" 
     app:gaugeStrokeColor="@color/md_grey_400" 
     app:gaugeStrokeWidth="10dp" 
     app:gaugeStartValue="0" 
     app:gaugeEndValue="14" 
     app:gaugeSweepAngle="270" 
     android:layout_alignTop="@+id/gaugePressione" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="10dp"/> 

    <pl.pawelkleczkowski.customgauge.CustomGauge 
     android:id="@+id/gaugePressione" 
     android:layout_width="180dp" 
     android:layout_height="180dp" 
     android:paddingBottom="5dp" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:paddingTop="5dp" 
     app:gaugePointStartColor="@color/md_blue_900" 
     app:gaugePointEndColor="@color/md_blue_900" 
     app:gaugePointSize="5" 
     app:gaugeStartAngle="135" 
     app:gaugeStrokeCap="ROUND" 
     app:gaugeStrokeColor="@color/md_grey_400" 
     app:gaugeStrokeWidth="10dp" 
     app:gaugeStartValue="0" 
     app:gaugeEndValue="15" 
     app:gaugeSweepAngle="270" 
     android:layout_marginTop="39dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="10dp"/> 

    <TextView 
     android:id="@+id/textPH" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="0.0" 
     android:textSize="30dp" 
     android:textStyle="bold" 
     android:layout_alignRight="@+id/textStrPH" 
     android:layout_marginTop="100dp"/> 

    <TextView 
     android:id="@+id/textPressione" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="0.0" 
     android:textSize="30dp" 
     android:textStyle="bold" 
     android:layout_alignRight="@+id/textStrPressione" 
     android:layout_marginTop="100dp" /> 

    <TextView 
     android:id="@+id/textStrPressione" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Bar" 
     android:textSize="30dp" 
     android:textStyle="italic" 
     android:layout_below="@+id/textPressione" 
     android:layout_alignLeft="@+id/gaugePressione" 
     android:layout_marginLeft= "70dp" 
     android:textColor="@color/md_black_1000"/> 

    <TextView 
     android:id="@+id/textStrPH" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="PH" 
     android:textSize="30dp" 
     android:textStyle="italic" 
     android:layout_alignRight="@+id/gaugePH" 
     android:layout_alignBottom="@+id/textStrPressione" 
     android:layout_marginRight= "70dp" 
     android:textColor="@color/md_black_1000"/> 

    <Button 
     android:id="@+id/goMaps" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Mappa" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginBottom="10dp" 
     android:layout_marginRight="10dp"/> 

    <TextView 
     android:id="@+id/textTemperatura" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="0.0" 
     android:textSize="30dp" 
     android:textStyle="bold" 
     android:layout_alignTop="@+id/textUmidita" 
     android:layout_alignRight="@+id/textStrPressione"/> 

    <TextView 
     android:id="@+id/textStrTemperatura" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="°C" 
     android:textSize="30dp" 
     android:textStyle="italic" 
     android:layout_marginLeft= "70dp" 
     android:textColor="@color/md_black_1000" 
     android:layout_alignRight="@+id/textPressione" 
     android:layout_alignTop="@+id/textTemperatura" 
     android:layout_marginTop="40dp" 
     android:layout_marginRight="10dp"/> 

    <TextView 
     android:id="@+id/textUmidita" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="0.0" 
     android:textSize="30dp" 
     android:textStyle="bold" 
     android:layout_alignRight="@+id/textPH" 
     android:layout_alignTop="@+id/gaugeUmidita" 
     android:layout_marginTop="60dp"/> 

    <TextView 
     android:id="@+id/textStrUmidita" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="%" 
     android:textSize="30dp" 
     android:textStyle="italic" 
     android:layout_marginLeft= "70dp" 
     android:textColor="@color/md_black_1000" 
     android:layout_marginRight="10dp" 
     android:layout_alignBaseline="@+id/textStrTemperatura" 
     android:layout_alignBottom="@+id/textStrTemperatura" 
     android:layout_alignEnd="@+id/textStrPH" /> 

    <pl.pawelkleczkowski.customgauge.CustomGauge 
     android:id="@+id/gaugeUmidita" 
     android:layout_width="180dp" 
     android:layout_height="180dp" 
     android:paddingBottom="5dp" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:paddingTop="5dp" 
     app:gaugePointStartColor="@color/md_red_900" 
     app:gaugePointEndColor="@color/md_red_900" 
     app:gaugePointSize="5" 
     app:gaugeStartAngle="135" 
     app:gaugeStrokeCap="ROUND" 
     app:gaugeStrokeColor="@color/md_grey_400" 
     app:gaugeStrokeWidth="10dp" 
     app:gaugeStartValue="0" 
     app:gaugeEndValue="100" 
     app:gaugeSweepAngle="270" 
     android:layout_alignTop="@+id/gaugeTemperatura" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="10dp" /> 

    <pl.pawelkleczkowski.customgauge.CustomGauge 
     android:id="@+id/gaugeTemperatura" 
     android:layout_width="180dp" 
     android:layout_height="180dp" 
     android:paddingBottom="5dp" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:paddingTop="5dp" 
     app:gaugePointStartColor="@color/md_blue_900" 
     app:gaugePointEndColor="@color/md_blue_900" 
     app:gaugePointSize="5" 
     app:gaugeStartAngle="135" 
     app:gaugeStrokeCap="ROUND" 
     app:gaugeStrokeColor="@color/md_grey_400" 
     app:gaugeStrokeWidth="10dp" 
     app:gaugeStartValue="-20" 
     app:gaugeEndValue="50" 
     app:gaugeSweepAngle="270" 
     android:layout_marginTop="13dp" 
     android:layout_marginLeft="10dp" 
     android:layout_below="@+id/gaugePressione" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:id="@+id/textImpianto" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Impianto:" 
     android:textSize="30dp" 
     android:textStyle="bold" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="10dp"/> 

    <TextView 
     android:id="@+id/textCodImpianto" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="0" 
     android:textSize="30dp" 
     android:textStyle="bold" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="145dp" 
     android:layout_marginBottom="10dp"/> 

</RelativeLayout> 
+0

你應該總是使用'sp'作爲文本大小,而不是'dp' –

回答

0

那是因爲你正在使用的高度和寬度的硬編碼值來支持不同的屏幕尺寸文檔。這些值有dp - 這是密度像素。由於屏幕不同,這些屏幕上的像素也會不同,所以這些值「不起作用」。

您應該嘗試使用match_parent(它將填充父級內所有可能的空間)或wrap_content,它將只使用所需的空間。通常寬度是match_parent,高度是wrap_content。

如果在該佈局上有多個元素,您也可以嘗試使用weight,這基本上會給每個元素一定的百分比。 想象一個android:weight =「1」的元素,另一個android:weight =「2」。這兩個元素都會有不同的屏幕「百分比」。

0

什麼是導致問題的意見? 是@id/goMaps@id/textCodImpianto還是@id/textImpianto其中? 下面是Android Studio中的編輯器有什麼看法(我一旦替換資源的硬編碼文本):

@id/goMaps can overlap @id/textCodImpianto if @string/_0, @string/mappa grow due to localized text expansion less... (Ctrl+F1) If relative layout has text or button items aligned to left and right sides they can overlap each other due to localized text expansion unless they have mutual constraints like toEndOf/toStartOf

替換文字大小變化與屏幕尺寸的變化(在這種情況下相同的效果)和你至少有一個解釋爲什麼你的一些觀點重疊或移動。

至少,你缺乏一些限制。

相關問題