Android自定义view实现输入框效果
时间:2021-05-20
本文实例为大家分享了Android自定义view实现输入框的具体代码,供大家参考,具体内容如下
自定义输入框的Viewpackage com.fenghongzhang.day017;import android.content.Context;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.ImageView;import android.widget.LinearLayout;import androidx.annotation.NonNull;import androidx.annotation.Nullable;public class InputView extends LinearLayout { private int inputview_input_icon; private String inputview_input_hint; private boolean inputview_is_pass; private View inflate; ImageView imageView; EditText editText; public InputView(@NonNull Context context) { super(context); } public InputView(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(context,attrs); } public void init(Context context,AttributeSet attr){ if(attr==null){ return; } TypedArray typedArray = context.obtainStyledAttributes(attr, R.styleable.InputView); inputview_input_icon = typedArray.getResourceId(R.styleable.InputView_input_icon, R.mipmap.ic_launcher); inputview_input_hint = typedArray.getString(R.styleable.InputView_input_hint); inputview_is_pass = typedArray.getBoolean(R.styleable.InputView_is_pass, false); //释放资源 typedArray.recycle(); //加载. inflate = LayoutInflater.from(context).inflate(R.layout.inputview, this, false); imageView= (ImageView)inflate.findViewById(R.id.icon); editText= (EditText)inflate.findViewById(R.id.text); imageView.setImageResource(inputview_input_icon); editText.setText(inputview_input_hint); //设置样式,是不是密文格式,可以没有. editText.setInputType(inputview_is_pass? InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD:InputType.TYPE_CLASS_PHONE); //添加到viewgroup中 addView(inflate); } //用来取到输入框的值. public String getString(){ return editText.getText().toString().trim(); }}
输入框的布局<?xml version="1.0" encoding="utf-8"?>
属性文件<?xml version="1.0" encoding="utf-8"?>
布局中引用<?xml version="1.0" encoding="utf-8"?>
输入框圆角背景<?xml version="1.0" encoding="utf-8"?>
效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。