Android开发_精准排布控件位置
|Word count:507|Reading time:2min|Post View:25
1. 简述
在Android系统上开发程序,很多时候需要精准的排布控件的位置和大小.并且适合各种比例的屏幕(4:3,16:9…),下面分别介绍在高版本和低版本的Android中的实现方法.
## 2. Android Studio/高版本Android实现 1) 说明
使用高版本android内置的android-support-percent-lib库,通过设置百分比的方法,实现了该功能,
Demo一般都是android
studio,Eclipse下需要下载支持库:http://download.csdn.net/detail/sbsujjbcy/8857747
在Layout中设置百分比:PercentRelativeLayout/PercentFrameLayout/PercentLinearLayout
2) Layout文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="utf-8"?> <android.support.percent.PercentFrameLayout 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">
<TextView android:layout_width="0dp" android:layout_height="0dp" android:background="#44ff0000" android:text="width:30%,height:20%" app:layout_heightPercent="20%" app:layout_marginLeftPercent="10%" app:layout_marginTopPercent="40%" app:layout_widthPercent="30%"/> </android.support.percent.PercentFrameLayout>
|
3) 相关属性: layout_widthPercent
layout_heightPercent layout_marginPercent layout_marginLeftPercent
layout_marginTopPercent layout_marginRightPercent
layout_marginBottomPercent layout_marginStartPercent
layout_marginEndPercent 4) 修改build.gradle 在dependencies{}加 compile
'com.android.support:percent:22.2.0' ## 3.
使用Eclipse/低版本Android实现 1) 说明
推荐用此方法,它的通用性更强,适合各个Android版本,无需外加扩展库,对于layout按一定比例或规则排列的界面更方便使用。
2) Layout文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?xml version="1.0" encoding="utf-8"?> <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">
<TextView android:id="@+id/txt" android:layout_width="0dp" android:layout_height="0dp" android:layout_gravity="left|top" android:background="#44ff0000" android:text="testme"/>
</RelativeLayout>
|
3) Java程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package com.test.testme;
import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.RelativeLayout;
public class testme extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView txtView = (TextView) findViewById(R.id.txt); RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)txtView.getLayoutParams(); params.width = 100; params.height = 100; params.setMargins(100,200,0,0); txtView.setLayoutParams(params); } }
|