美文网首页android屏幕适配源码原理知识点
Android:百分比布局 布局嵌套 Log Toast

Android:百分比布局 布局嵌套 Log Toast

作者: 壹零二肆 | 来源:发表于2019-12-24 16:25 被阅读0次
    添加依赖

    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;
            }
    
        }
    }
    

    相关文章

      网友评论

        本文标题:Android:百分比布局 布局嵌套 Log Toast

        本文链接:https://www.haomeiwen.com/subject/eckfoctx.html