我需要根据屏幕的大小调整内容,例如HTML可以使用porcetage。我展示了我的代码和我需要做的事情
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_happyhour_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#363636"
android:orientation="vertical"
android:padding="10dip" >
<LinearLayout
android:id="@+id/top"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="12dip"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/el_nombre"
android:layout_width="170dip"
android:layout_height="30dip">
<TextView
android:id="@+id/nombre_happyhour"
android:layout_width="170dip"
android:layout_height="wrap_content"
android:text=" "
android:textColor="#ffffff"
android:textSize="19sp"
android:tag="bold"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/precios_happy"
android:layout_width="wrap_content"
android:layout_height="30dip">
<ImageView
android:id="@+id/vertical1"
android:layout_width="wrap_content"
android:layout_height="25dip"
android:src="@drawable/vertical"
/>
<TextView
android:id="@+id/precio_happyhour"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:text=""
android:textColor="#ffffff"
android:textSize="19sp"
android:paddingLeft="5dip"
android:paddingRight="5dip" />
<ImageView
android:id="@+id/vertical2"
android:layout_width="wrap_content"
android:layout_height="25dip"
android:src="@drawable/vertical"
/>
<ImageView
android:id="@+id/hp"
android:layout_width="24dip"
android:layout_height="24dip"
android:scaleType="centerInside"
android:src="@drawable/happy"
android:paddingLeft="2dip"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/bot"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/descripcion"
android:layout_width="300dip"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/la_descripcion"
android:layout_width="250dip"
android:layout_height="wrap_content"
android:text=""
android:textColor="#ffffff"
android:textSize="12sp"
android:paddingLeft="12dp"
android:paddingRight="50dip"/>
<ImageView
android:id="@+id/img_tag"
android:layout_width="5.84mm"
android:layout_height="4.21mm"
android:scaleType="centerInside"
android:layout_gravity="bottom"
android:background="@drawable/agotado"
android:paddingLeft="30sp"
/>
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="290dip"
android:layout_height="10dip"
android:src="@drawable/divierblanco"
android:paddingLeft="10dip"/>
包含2个LinearLayout(the_name,precio_happy)的LinearLayout,一个用于名称,另一个用于价格以及一些装饰性的图片,其中“the_name”的大小为60%来调整名称和obimante价格是40%,我该怎么做?
答案 0 :(得分:2)
设置您想要相对于0dp的宽度或高度,然后使用layout_weight设置百分比。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="left"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".70" />
<Button
android:text="right"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".30" />
</LinearLayout>
更多详情here
答案 1 :(得分:0)
你应该使用android:weight。使用weightsum = 100设置容器,然后可以相对设置大小。
答案 2 :(得分:0)
我们可以使用java api来实现screen的布局。这样我们就可以动态地开发UI了。
另外,根据设备尺寸调整我们的UI百分比,我们可以使用Android的Display类,它在运行时为我们提供屏幕宽度和高度。
答案 3 :(得分:0)
使用此方法,它会重新排列您传递的百分比视图。
setHeightInPercent(this, lvFavouriteCountries, 0.23f);
public static void setHeightInPercent(Context context, View view,
float percentage) {
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
@SuppressWarnings("deprecation")
int height = display.getHeight();
int heightForView = (int) (height * percentage);
LayoutParams layoutParmas = view.getLayoutParams();
layoutParmas.height = heightForView;
view.setLayoutParams(layoutParmas);
}
答案 4 :(得分:0)
根据多个屏幕的官方指南,使用线性布局和重量不被视为最佳做法。