带有硬编码值的Android应用布局看起来很糟糕 [英] Android app layout looks bad with hardcoded values
问题描述
在此处使用新的应用布局. 这就是我想要的样子(在android studio中看起来像这样):
Playing around with a new app layout here. here's what I want it to look like (it looks like this in android studio):
无论使用哪种设备,我都希望使文本看起来更好.现在,我正在使用硬编码的值,但不知道该怎么做.任何资源/代码示例都很棒.
I want to make the text look well regardless of device. Right now I'm using hardcoded values but don't know how to do it otherwise. Any resources/ code samples would be great.
这是我当前的代码:
<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" />
请给我您的任何建议,我会解决的:)
Please give me any advice you have and I'll fix it :)
推荐答案
在不同的屏幕尺寸值中提供不同的尺寸> dimens.xml
Provide different sizes for different screen sizes in values > dimens.xml
然后将集合变暗,而不是硬编码,例如:
设置android:layout_width="@dimens/btn_size"
而不是android:layout_width="100dp"
Then set dimens instead of hard codes, for example:
set android:layout_width="@dimens/btn_size"
instead of android:layout_width="100dp"
您可以对文本大小等进行此操作.
You can do this for text sizes and so on.
您还可以使用嵌套布局或wrap_content
和match_parent
来使布局在每台设备上看起来都很好.
You can also use nested layouts or wrap_content
and match_parent
to make your layout look good on every device.
这篇关于带有硬编码值的Android应用布局看起来很糟糕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!