1. 簡(jiǎn)述
在Android系統(tǒng)上開發(fā)程序,很多時(shí)候需要精準(zhǔn)的排布控件的位置和大兴疽小.并且適合各種比例的屏幕(4:3蔼啦,16:9…)寝殴,下面分別介紹在高版本和低版本的Android中的實(shí)現(xiàn)方法.
2. Android Studio/高版本Android實(shí)現(xiàn)
- 說明
使用高版本android內(nèi)置的android-support-percent-lib庫(kù),通過設(shè)置百分比的方法藕溅,實(shí)現(xiàn)了該功能匕得, Demo一般都是android studio,Eclipse下需要下載支持庫(kù):http://download.csdn.net/detail/sbsujjbcy/8857747
在Layout中設(shè)置百分比:PercentRelativeLayout/PercentFrameLayout/PercentLinearLayout - Layout文件
<?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>
- 相關(guān)屬性:
layout_widthPercent
layout_heightPercent
layout_marginPercent
layout_marginLeftPercent
layout_marginTopPercent
layout_marginRightPercent
layout_marginBottomPercent
layout_marginStartPercent
layout_marginEndPercent - 修改build.gradle
在dependencies{}加
compile 'com.android.support:percent:22.2.0'
3. 使用Eclipse/低版本Android實(shí)現(xiàn)
- 說明
推薦用此方法,它的通用性更強(qiáng)汁掠,適合各個(gè)Android版本略吨,無需外加擴(kuò)展庫(kù),對(duì)于layout按一定比例或規(guī)則排列的界面更方便使用考阱。 - Layout文件
<?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>
- Java程序
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);
}
}