乐校园app

满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述乐校园app相关的知识,希望能为你提供帮助。
【乐校园app】今天做的是登陆界面的实现。
分了两个阶段:1、布局的实现(由于对于布局不能够熟悉的运用,还有各种捆版事件)

乐校园app

文章图片

 
这个输入框由于考虑到后期还要用到,所以直接专门写了一个aciivity,到后面需要用的时候调用一下就行。
package com.example.YueXiaoYuan.views; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.text.InputType; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ResourceCursorAdapter; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.example.YueXiaoYuan.R; /** * Input_icon输入框前面的图标 * Input_hint输入框的提示内容 * is_Password输入框的内容是否以密文的方式进行展示 * */ public class InputView extends FrameLayout { private int inputIcon; private String inputHint; private boolean isPssword; private View mView; private ImageView mIvIcon; private EditText mEtInput; public InputView(@NonNull Context context) { super(context); init(context,null); }public InputView(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(context,attrs); }public InputView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context,attrs); }public InputView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(context,attrs); } privatevoid init(Context context ,AttributeSet attrs){ if (attrs==null)return; //根据attrs获取自定义属性 TypedArray typedArray=context.obtainStyledAttributes(attrs, R.styleable.inputView); inputIcon=typedArray.getResourceId(R.styleable.inputView_input_icon,R.mipmap.ic_launcher); inputHint=typedArray.getString(R.styleable.inputView_input_hint); isPssword=typedArray.getBoolean(R.styleable.inputView_is_password,false); typedArray.recycle(); //绑定layout布局 mView= LayoutInflater.from(context).inflate(R.layout.input_view,this,false); mIvIcon=mView.findViewById(R.id.iv_icon); mEtInput=mView.findViewById(R.id.et_input); //布局关联属性 mIvIcon.setImageResource(inputIcon); mEtInput.setHint(inputHint); mEtInput.setInputType(isPssword ? InputType.TYPE_CLASS_TEXT| InputType.TYPE_TEXT_VARIATION_PASSWORD:InputType.TYPE_CLASS_PHONE); addView(mView); } public String getInputStr(){ return mEtInput.getText().toString().trim(); } }

这是布局代码
< ?xml version="1.0" encoding="utf-8"?> < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="@dimen/inputviewHeight" android:gravity="center_vertical" android:paddingLeft="@dimen/marginSize" android:paddingRight="@dimen/marginSize" > < ImageView android:id="@+id/iv_icon" android:layout_width="wrap_content" android:layout_height="54dp" android:src="https://www.songbingjia.com/android/@drawable/zh"> < /ImageView> < EditText android:id="@+id/et_input" android:layout_width="match_parent" android:layout_height="match_parent" android:textColorHint="#C22525" android:background="@null" android:hint="用户名"android:paddingLeft="@dimen/marginSize" android:paddingRight="@dimen/marginSize" android:textSize="@dimen/titleSize"> < /EditText> < /LinearLayout>

values定义到的属性:
< ?xml version="1.0" encoding="utf-8"?> < resources> < !-- 声明样式--> < declare-styleable name="inputView"> < !--输入框前面的小图标--> < attr name="input_icon" format="reference"> < /attr> < !--输入框的提示信息--> < attr name="input_hint" format="string"> < /attr> < !--输入框的内容是否以密文的形式进行展示--> < attr name="is_password" format="boolean"> < /attr> < /declare-styleable> < /resources>


< ?xml version="1.0" encoding="utf-8"?> < resources> < dimen name="titleSize"> 18sp< /dimen> < dimen name="inputviewHeight"> 44dp< /dimen> < dimen name="marginSize"> 16dp< /dimen> < dimen name="marginSize2"> 455dp< /dimen> < dimen name="marginSize3"> 655dp< /dimen> < dimen name="btnHeight"> 44dp< /dimen> < dimen name="radius"> 5dp< /dimen> < /resources>

同样,按钮后期需要的地方也有很多,所以直接写一个模板,到时候只需要套用就可以了。
< ?xml version="1.0" encoding="utf-8"?> < selector xmlns:android="http://schemas.android.com/apk/res/android"> < !--view高亮--> < item android:state_focused="true" android:drawable="@drawable/btn_commit_h"> < /item> < item android:state_pressed="true" android:drawable="@drawable/btn_commit_h"> < /item> < item android:state_selected="true" android:drawable="@drawable/btn_commit_h"> < /item> < !--默认--> < item android:drawable="@drawable/btn_commit_n"> < /item> < /selector>


< ?xml version="1.0" encoding="utf-8"?> < shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> < !--实体的颜色--> < solid android:color="@color/colorAccent"> < /solid> < !-- 弧度--> < corners android:radius="@dimen/radius"> < /corners> < /shape>


< ?xml version="1.0" encoding="utf-8"?> < shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> < !--实体的颜色--> < solid android:color="@color/colorAccentH"> < /solid> < !-- 弧度--> < corners android:radius="@dimen/radius"> < /corners> < /shape>


< ?xml version="1.0" encoding="utf-8"?> < resources> < color name="colorPrimary"> #008577< /color> < color name="colorPrimaryDark"> #00574B< /color> < color name="colorAccent"> #D81B60< /color> < color name="colorAccentH"> #E6DFE0< /color> < color name="mainColor"> #A09C9C< /color> < /resources>


< !--登录按钮的封装--> < style name="commitBtn"> < item name="android:layout_width"> match_parent< /item> < item name="android:layout_height"> @dimen/btnHeight< /item> < item name="android:textSize"> @dimen/titleSize< /item> < item name="android:layout_marginLeft"> @dimen/marginSize< /item> < item name="android:layout_marginRight"> @dimen/marginSize< /item> < item name="android:background"> @drawable/btn_commit_select< /item> < /style>

明天进行登陆手机号和密码的限制页面的跳转以及注册界面的布局。

    推荐阅读