添加依赖
implementation 'androidx.percentlayout:percentlayout:1.0.0'
github: https://github.com/Gong-Shijie/PercentLayoutDemo.git
可使用的布局:PercentFrameLayout、PercentRelativeLayout
除了使用FrameLayout 和 RealitiveLayout 自带的属性之外
可以使用的
百分比布局扩展属性:
layout_widthPercent
layout_heightPercent
layout_marginPercent
layout_marginLeftPercent
layout_marginTopPercent
layout_marginRightPercent
layout_marginBottomPercent
layout_marginStartPercent
layout_marginEndPercent
RealitiveLayout常用属性:
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_below 在某元素的下方
android:layout_above 在某元素的上方
android:layout_toLeftOf 在某元素的左边
Android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素右边缘对齐
android:layout_marginBottom 离某元素底边缘的距离
Android:layout_marginLeft 离某元素左边缘的的距离
Android:layout_marginRight 离某元素的右边缘的距离
Android:layout_marginTop 离某元素上边缘的距离
android:hint 设置EditText为空时输入的提示信息
android:gravity 对该view内容的限定:靠上 下 左 右
android:layout_gravity="right" 用来设置该Container(组件)的靠左 靠右
margin 空白 align 对齐 gravity 重心摆放
Log使用
使用log Android studio 内使用log filter设置tag 来查看对应的log
Log.v():打印一些最为繁琐、意义不大的日志信息
Log.d():打印一些调试信息(logd+tab)
Log.i():打印一些比较重要的数据,可帮助你分析用户行为数据(logi+tab)
Log.w():打印一些警告信息,提示程序该处可能存在的风险(logw+tab)
Log.e():打印程序中的错误信息(loge+tab)
Toast自定义
高度和显示内容
Toast toast = Toast.makeText(getApplicationContext(),null,Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER, 0,1580);
toast.setText("登录失败!");
toast.show();
代码:
xml实例:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".LoginActivity">
<androidx.percentlayout.widget.PercentFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|top"
android:text="登陆"
android:textAlignment="center"
android:textSize="30sp"
app:layout_marginTopPercent="8%" />
<androidx.percentlayout.widget.PercentRelativeLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#1222"
app:layout_heightPercent="50%"
app:layout_marginLeftPercent="12.5%"
app:layout_marginTopPercent="25%"
app:layout_widthPercent="75%"
>
<EditText
app:layout_marginTopPercent ="30%"
app:layout_marginLeftPercent ="10%"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="account :"
android:textSize="30sp"></EditText>
<EditText
app:layout_marginTopPercent ="50%"
app:layout_marginLeftPercent ="10%"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="password :"
android:textSize="30sp"></EditText>
<Button
android:text="登陆"
android:layout_centerHorizontal="true"
android:textSize="30sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_marginTopPercent ="75%"
></Button>
</androidx.percentlayout.widget.PercentRelativeLayout>
</androidx.percentlayout.widget.PercentFrameLayout>
</RelativeLayout>
preview
java代码:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btn_1;
private Button btn_2;
private Button btn_3;
private Button btn_4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_1 = findViewById(R.id.btn_1);
btn_1.setOnClickListener(this);
btn_2 = findViewById(R.id.btn_2);
btn_2.setOnClickListener(this);
btn_3 = findViewById(R.id.btn_3);
btn_3.setOnClickListener(this);
btn_4 = findViewById(R.id.btn_4);
btn_4.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btn_1:
Intent intent = new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
break;
case R.id.btn_2:
Toast.makeText(this,"click btn2!",Toast.LENGTH_SHORT).show();
break;
case R.id.btn_3:
Log.i("MainActivity:","click btn3!");
break;
/*使用log Android studio 内使用log filter设置tag 来查看对应的log
Log.v():打印一些最为繁琐、意义不大的日志信息
Log.d():打印一些调试信息(logd+tab)
Log.i():打印一些比较重要的数据,可帮助你分析用户行为数据(logi+tab)
Log.w():打印一些警告信息,提示程序该处可能存在的风险(logw+tab)
Log.e():打印程序中的错误信息(loge+tab)
*/
case R.id.btn_4:
Toast toast = Toast.makeText(getApplicationContext(),null,Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER, 0,1580);
toast.setText("登录失败!");
toast.show();
break;
}
}
}
网友评论