先上圖看看實現效果java
1.在 app 的 build.gradle 添加依賴
implementation 'com.luozm.captcha:captcha:1.1.2'
2.將 Captcha 添加至佈局文件
<com.luozm.captcha.Captcha android:id="@+id/captCha" android:layout_centerInParent="true" android:layout_width="match_parent" android:layout_height="265dp" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" app:mode="mode_bar" app:src="@drawable/validate" app:blockSize="50dp" android:scaleType="centerCrop" app:max_fail_count="4"/>
3.添加 Java 代碼
public void showw(String advPic) { Context context = MainActivity.this; diaa = new Dialog(context, R.style.edit_AlertDialog_style); diaa.setContentView(R.layout.item_pict); captcha = diaa.findViewById(R.id.captCha); final Button btn_mode = diaa.findViewById(R.id.btn_mode); final Captcha captcha = diaa.findViewById(R.id.captCha); ImageView cuowu = diaa.findViewById(R.id.im_cuowu); // Glide.with(getApplication()).load(advPic).into(captcha ); captcha.setBitmap(advPic); btn_mode.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (captcha.getMode() == Captcha.MODE_BAR) { captcha.setMode(Captcha.MODE_NONBAR); btn_mode.setText("滑動條模式"); } else { captcha.setMode(Captcha.MODE_BAR); btn_mode.setText("無滑動條模式"); } } }); cuowu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diaa.dismiss(); itData(mLongitude, mLatitude); } }); captcha.setCaptchaListener(new Captcha.CaptchaListener() { @Override public String onAccess(long time) { Toast.makeText(MainActivity.this, "驗證成功", Toast.LENGTH_SHORT).show(); diaa.dismiss(); diaa.setCanceledOnTouchOutside(true); return "驗證經過"; } @Override public String onFailed(int count) { Toast.makeText(MainActivity.this, "驗證失敗,失敗次數" + count, Toast.LENGTH_SHORT).show(); return "驗證失敗"; } @Override public String onMaxFailed() { Toast.makeText(MainActivity.this, "驗證超過次數,你的賬號被封鎖", Toast.LENGTH_SHORT).show(); return "能夠走了"; } }); diaa.show(); diaa.setCanceledOnTouchOutside(true); Window w = diaa.getWindow(); WindowManager.LayoutParams lp = w.getAttributes(); lp.x = 0; lp.y = 40; diaa.onWindowAttributesChanged(lp); }