Android 如何将布局(LinearLayout、RelativeLayout等)的大小设置为百分比?
我需要根据屏幕的大小调整内容,比如HTML,它可以在页面上使用。我展示了我的代码和我需要做的事情Android 如何将布局(LinearLayout、RelativeLayout等)的大小设置为百分比?,android,xml,android-layout,android-xml,Android,Xml,Android Layout,Android Xml,我需要根据屏幕的大小调整内容,比如HTML,它可以在页面上使用。我展示了我的代码和我需要做的事情 <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:back
<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"/>
LinearLayout包含两个LinearLayout(The_name,precio_happy),一个用于名称,另一个用于价格以及一些装饰性图片。这是因为“The_name”的大小大约为60%以调整名称,而Obimant的价格为40%,我如何做到这一点?你应该使用android:weight。将容器设置为weightsum=100,然后您可以相对地设置大小。我们可以使用java api实现屏幕布局。这样我们就可以动态地开发UI
另外,为了根据设备尺寸调整用户界面的百分比,我们可以使用android的显示类,它在运行时为我们提供屏幕宽度和高度。使用此方法,它将根据通过的百分比重新排列视图
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);
}
设置要相对于0dp的宽度或高度,然后使用布局权重设置百分比
<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>
更多细节根据多屏幕的官方指南,线性布局和重量的使用不被视为最佳实践