- 获取验证码倒计时:
private TextView textview;
//从60s倒计到1s
private CountDownTimer mCountDownTimer = new CountDownTimer(60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
textview.setText(millisUntilFinished / 1000 + "秒");
textview.setClickable(false);
}
@Override
public void onFinish() {
textview.setText("重新获取");
textview.setClickable(true);
}
};`
- 密码设置可见与不可见
inputType = “textPassword”设置输入文本为密码
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="4dp">
<TextView
style="@style/text_black_16sp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:text="密码:" />
<EditText
android:id="@+id/pwd_afp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:inputType="textPassword"
android:maxLines="1"
android:paddingStart="80dp"
android:textSize="14sp"
android:theme="@style/EditTextUnderLine" />
<ImageView
android:id="@+id/show_pwd_afp"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_marginEnd="10dp"
android:layout_marginTop="5dp"
android:src="@drawable/show_pwd_false" />
</RelativeLayout>
private ImageView showPwd;
private EditView pwd;
private boolean isShowPwd = false;
showPwd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!isShowPwd){
showPwd.setImageResource(R.drawable.show_pwd_true);
pwd.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
isShowPwd = true;
}else {
showPwd1.setImageResource(R.drawable.show_pwd_false);
pwd1.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
isShowPwd1 = false;
}
}
});
用到的EditView的输入类型:
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:输入对用户可见的密码
InputType.TYPE_CLASS_TEXT :输入类型为普通文本
InputType.TYPE_TEXT_VARIATION_PASSWORD :输入对用户不可见的密码
相册选取图片
AndroidManifest.xml权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
private ImageView imageview;
private static final int REQUEST_CODE_IMAGE = 100;
imageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//判断是否获取到权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
} else {
//多选限制数量,默认为9
ImagePicker.getInstance().setSelectLimit(1);
Intent intent = new Intent(this, ImageGridActivity.class);
startActivityForResult(intent, REQUEST_CODE_IMAGE);
}
}
}
});
/*处理返回图片结果*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == ImagePicker.RESULT_CODE_ITEMS&&requestCode == REQUEST_CODE_IMAGE) {
ArrayList<ImageItem> images = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS);
//添加图片返回
if (data != null && REQUEST_CODE_IMAGE == 100) {
imagePath = images.get(0).path;
Glide.with(this).load(imagePath).into(imageview);
}
}
}