在这里玩新的应用布局。 这就是我想要的样子(在android studio中看起来像这样):
无论设备如何,我都想让文字看起来很好看。现在我正在使用硬编码值,但不知道该怎么做。任何资源/代码样本都会很棒。
这是我目前的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:id="@+id/awesomelayout">
<ImageView
android:id="@+id/iconimg"
android:src="@drawable/ic_launcher"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<TextView android:text="Phone Optimizer" android:layout_width="wrap_content" android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:id="@+id/title"
android:layout_alignParentTop="true"
android:textSize="25dp" />
<ImageView
android:id="@+id/safe"
android:src="@drawable/sec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_below="@+id/lazyswipe"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="42dp" />
/>
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:text="Scan Now"
android:id="@+id/SecButton"
android:onClick="secBtn"
android:layout_gravity="right"
android:layout_alignBottom="@+id/safe"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView android:text="360 Security" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smltitle"
android:textSize="30dp"
android:layout_alignTop="@+id/safe"
android:layout_toRightOf="@+id/safe"
android:layout_toEndOf="@+id/safe" />
<TextView
android:text="Scan for Viruses" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smldsc"
android:textSize="23dp"
android:layout_below="@+id/smltitle"
android:layout_alignLeft="@+id/smllazydsc"
android:layout_alignStart="@+id/smllazydsc" />
<ImageView
android:id="@+id/lazyswipe"
android:src="@drawable/lz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
/>
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:text="Update Now"
android:id="@+id/lazyBtn"
android:onClick="lazyBtn"
android:layout_gravity="right"
android:layout_alignBottom="@+id/lazyswipe"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView android:text="LazySwipe" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smllazytitle"
android:textSize="30dp"
android:layout_alignTop="@+id/lazyswipe"
android:layout_alignRight="@+id/smltitle"
android:layout_alignEnd="@+id/smltitle" />
<TextView
android:text="Make phone 30% faster" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smllazydsc"
android:textSize="23dp"
android:layout_below="@+id/smllazytitle"
android:layout_alignLeft="@+id/smllazytitle"
android:layout_alignStart="@+id/smllazytitle" />
<ImageView
android:id="@+id/apus"
android:src="@drawable/apus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_below="@+id/iconimg"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
/>
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:text="Speed Now"
android:id="@+id/apusButton"
android:onClick="apusBtn"
android:layout_gravity="right"
android:layout_alignBottom="@+id/apus"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView android:text="Apus Booster" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/apusTitle"
android:textSize="30dp"
android:layout_alignTop="@+id/apus"
android:layout_alignLeft="@+id/apusdesc"
android:layout_alignStart="@+id/apusdesc" />
<TextView
android:text="Make phone 30% faster" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/apusdesc"
android:textSize="23dp"
android:layout_below="@+id/apusTitle"
android:layout_alignLeft="@+id/smllazytitle"
android:layout_alignStart="@+id/smllazytitle" />
请给我任何建议,我会解决它:)
答案 0 :(得分:1)
良好的做法是将您的硬代码值移动到值 - &gt; strings.xml中并从中获取字符串,如下所示 - &gt;
android:text="@string/yourStringVariableName"
答案 1 :(得分:1)
为值不同的屏幕尺寸提供不同的尺寸&gt; dimens.xml
然后设置维度而不是硬代码,例如:
设置android:layout_width="@dimens/btn_size"
而不是android:layout_width="100dp"
您可以为文字大小等执行此操作。
您还可以使用嵌套布局或wrap_content
和match_parent
来使您的布局在每台设备上都看起来很好。
答案 2 :(得分:0)
首先,我看不到任何图像。是上传了吗?
你要问的是一个难以回答的问题,你必须做出很多步骤和测试才能成功 如另一个答案所述,您可以将dimens.xml用于不同的设备。 另外,请确保使用sp而不是dp作为文本大小。它考虑了设备上的用户首选项和主题。 所有这些都很好,但我不会从那里开始。
删除所有硬编码值,对视图大小使用wrap_content和match_parent,并用下面的样式(小,中,大)替换文本大小
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/yourTextIdInStringsXml"
android:layout_marginTop="5dip"
android:layout_marginBottom="2dip"/>
正如您所看到的,我仅将硬编码值用于较小的边距,这可能不会导致任何问题。 您还有一个硬编码的按钮。使用wrap_content或match_parent,如果需要将其与需要更大或更小的其他东西配对,请使用嵌套的LinearLayouts和layout_weight属性。
祝你好运!!!
答案 3 :(得分:0)
Ok, so I fixed it myself, I'm sure I'm still using bad coding practices, but the layout looks good on the emulator and my own device. yay.!
Here's the code:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:auto="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:id="@+id/awesomelayout">
<ImageView
android:id="@+id/iconimg"
android:src="@drawable/ic_launcher"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<TextView android:text="Phone Optimizer" android:layout_width="wrap_content" android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:id="@+id/title"
android:layout_alignParentTop="true"
android:textSize="25dp" />
<ImageView
android:id="@+id/apus"
android:src="@drawable/apus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_below="@+id/iconimg"
android:layout_marginTop="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView android:text="Apus Booster" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/apusTitle"
android:textSize="30dp"
android:layout_alignTop="@+id/apus"
android:layout_alignLeft="@+id/apusdesc"
android:layout_alignStart="@+id/apusdesc" />
<TextView
android:text="Make phone 30% faster" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/apusdesc"
android:textSize="23dp"
android:layout_below="@+id/apusTitle"
android:layout_alignLeft="@+id/smllazytitle"
android:layout_alignStart="@+id/smllazytitle" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Speed Now"
android:id="@+id/apusButton"
android:onClick="apusBtn"
android:layout_gravity="right"
android:layout_below="@+id/apusdesc"
android:layout_alignParentRight="true"
/>
<ImageView
android:id="@+id/lazyswipe"
android:src="@drawable/lz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:layout_below="@+id/apus" />
<TextView android:text="LazySwipe" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smllazytitle"
android:textSize="30dp"
android:layout_alignTop="@+id/lazyswipe"
android:layout_alignRight="@+id/smltitle"
android:layout_alignEnd="@+id/smltitle" />
<TextView
android:text="Make phone 30% faster" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smllazydsc"
android:textSize="23dp"
android:layout_below="@+id/smllazytitle"
android:layout_alignLeft="@+id/smllazytitle"
android:layout_alignStart="@+id/smllazytitle" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Update Now"
android:id="@+id/lazyBtn"
android:onClick="lazyBtn"
android:layout_gravity="right"
android:layout_below="@+id/smllazydsc"
android:layout_alignParentRight="true"
/>
<ImageView
android:id="@+id/safe"
android:src="@drawable/sec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_below="@+id/lazyswipe"
android:layout_marginTop="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
/>
<TextView android:text="360 Security" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/smltitle"
android:textSize="30dp"
android:layout_alignTop="@+id/safe"
android:layout_toRightOf="@+id/safe"
android:layout_toEndOf="@+id/safe" />
<TextView
android:text="Scan for Viruses" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/secdesc"
android:layout_below="@+id/smltitle"
android:layout_alignLeft="@+id/smllazydsc"
android:layout_alignStart="@+id/smllazydsc" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scan Now"
android:id="@+id/SecButton"
android:onClick="secBtn"
android:layout_below="@+id/secdesc"
android:layout_gravity="right"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
</ScrollView>