diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..4eab92a
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 020eae2..68ac0f0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,8 +8,8 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
-
-
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
+ classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/simple/src/main/java/com/jyn/vcview/simple/MainActivity.java b/simple/src/main/java/com/jyn/vcview/simple/MainActivity.java
index d7669b6..b41f8e7 100644
--- a/simple/src/main/java/com/jyn/vcview/simple/MainActivity.java
+++ b/simple/src/main/java/com/jyn/vcview/simple/MainActivity.java
@@ -2,12 +2,25 @@ package com.jyn.vcview.simple;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.widget.TextView;
+
+import com.jyn.vcview.VerificationCodeView;
public class MainActivity extends AppCompatActivity {
+ private TextView textView;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+ VerificationCodeView verificationcodeview = findViewById(R.id.verificationcodeview);
+ textView = findViewById(R.id.text);
+ verificationcodeview.setOnCodeFinishListener(new VerificationCodeView.OnCodeFinishListener() {
+ @Override
+ public void onComplete(String content) {
+ textView.setText(content);
+ }
+ });
}
}
diff --git a/simple/src/main/res/layout/activity_main.xml b/simple/src/main/res/layout/activity_main.xml
index 30c53d4..d27057b 100644
--- a/simple/src/main/res/layout/activity_main.xml
+++ b/simple/src/main/res/layout/activity_main.xml
@@ -4,17 +4,28 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:orientation="vertical"
tools:context="com.jyn.vcview.simple.MainActivity">
+
+
diff --git a/verificationcodeview/build.gradle b/verificationcodeview/build.gradle
index b9a52bf..50e0f22 100644
--- a/verificationcodeview/build.gradle
+++ b/verificationcodeview/build.gradle
@@ -3,8 +3,6 @@ apply plugin: 'com.android.library'
android {
compileSdkVersion 26
-
-
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
@@ -32,3 +30,116 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
+
+apply plugin: 'com.github.dcendents.android-maven'
+apply plugin: 'com.jfrog.bintray'
+
+//项目主页--项目的GitHub地址
+def siteUrl = 'https://github.com/jiaoyaning/VerificationCodeView'
+//项目的git地址
+def gitUrl = 'https://github.com/jiaoyaning/VerificationCodeView.git'
+
+//发布到JCenter上的项目名字,compile引用时的第2部分项目名
+def libName = "verificationcodeview"
+//compile引用时的第1部分
+group = "com.jyn.verificationcodeview"
+// 版本号,//compile引用时的最后部分项目名,下次更新是只需要更改版本号即可
+version = "1.0.0"
+
+//生成源文件
+task sourcesJar(type: Jar) {
+ from android.sourceSets.main.java.srcDirs
+ classifier = 'sources'
+}
+
+//生成Javadoc文档
+task javadoc(type: Javadoc) {
+ source = android.sourceSets.main.java.srcDirs
+ classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
+}
+
+//文档打包成jar
+task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from javadoc.destinationDir
+}
+
+//拷贝javadoc文件
+task copyDoc(type: Copy) {
+ from "${buildDir}/docs/"
+ into "docs"
+}
+
+//上传到JCenter所需要的源码文件
+artifacts {
+ archives javadocJar
+ archives sourcesJar
+}
+//OM.xml文件
+install {
+ repositories.mavenInstaller {
+ // This generates POM.xml with proper parameters
+ pom {
+ project {
+ packaging 'aar'
+ //项目描述,自由填写
+ name 'A square VerificationCodeView on Android'
+ url siteUrl
+ licenses {
+ license {
+ //开源协议
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ }
+ }
+ developers {
+ developer {
+ //开发者的个人信息,根据个人信息填写
+ id 'jyn'
+ name 'jiaoyaning1210'
+ email 'jiaoyaning1210@gmail.com'
+ }
+ }
+ scm {
+ connection gitUrl
+ developerConnection gitUrl
+ url siteUrl
+ }
+ }
+ }
+ }
+}
+
+
+//上传到JCenter
+Properties properties = new Properties()
+properties.load(project.rootProject.file('local.properties').newDataInputStream())
+
+bintray {
+ user = properties.getProperty("bintray.user") //读取 local.properties 文件里面的 bintray.user
+ key = properties.getProperty("bintray.apikey") //读取 local.properties 文件里面的 bintray.apikey
+ configurations = ['archives']
+ pkg {
+ //这里的repo值必须要和你创建Maven仓库的时候的名字一样,我们前面创建的就是maven
+ repo = "maven"
+ //发布到JCenter上的项目名字
+ name = libName
+ //项目描述
+ desc = 'A square VerificationCodeView on Android'
+ websiteUrl = siteUrl
+ vcsUrl = gitUrl
+ licenses = ["Apache-2.0"]
+ publish = true
+ }
+}
+
+javadoc {
+ options {
+ //如果你的项目里面有中文注释的话,必须将格式设置为UTF-8,不然会出现乱码
+ encoding "UTF-8"
+ charSet 'UTF-8'
+ author true
+ version true
+ links "http://docs.oracle.com/javase/7/docs/api"
+ }
+}
\ No newline at end of file
diff --git a/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java b/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java
index a3664e0..baf7e1b 100644
--- a/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java
+++ b/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java
@@ -4,7 +4,6 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
-import android.support.annotation.Nullable;
import android.text.Editable;
import android.text.InputFilter;
import android.text.InputType;
@@ -20,10 +19,10 @@ import android.widget.TextView;
import java.lang.reflect.Field;
/**
- * @author jiaoyaning
- * @package com.b2cf.nonghe.widget
- * @filename VerificationCodeView
- * @date 2017/10/31
+ * jiaoyaning
+ * com.b2cf.nonghe.widget
+ * VerificationCodeView
+ * 2017/10/31
*/
public class VerificationCodeView extends LinearLayout implements TextWatcher, View.OnKeyListener, View.OnFocusChangeListener {
@@ -63,6 +62,70 @@ public class VerificationCodeView extends LinearLayout implements TextWatcher, V
private int mCursorDrawable;
+ public OnCodeFinishListener getOnCodeFinishListener() {
+ return onCodeFinishListener;
+ }
+
+ public void setOnCodeFinishListener(OnCodeFinishListener onCodeFinishListener) {
+ this.onCodeFinishListener = onCodeFinishListener;
+ }
+
+ public int getmEtNumber() {
+ return mEtNumber;
+ }
+
+ public void setmEtNumber(int mEtNumber) {
+ this.mEtNumber = mEtNumber;
+ }
+
+ public VCInputType getmEtInputType() {
+ return mEtInputType;
+ }
+
+ public void setmEtInputType(VCInputType mEtInputType) {
+ this.mEtInputType = mEtInputType;
+ }
+
+ public int getmEtWidth() {
+ return mEtWidth;
+ }
+
+ public void setmEtWidth(int mEtWidth) {
+ this.mEtWidth = mEtWidth;
+ }
+
+ public int getmEtTextColor() {
+ return mEtTextColor;
+ }
+
+ public void setmEtTextColor(int mEtTextColor) {
+ this.mEtTextColor = mEtTextColor;
+ }
+
+ public float getmEtTextSize() {
+ return mEtTextSize;
+ }
+
+ public void setmEtTextSize(float mEtTextSize) {
+ this.mEtTextSize = mEtTextSize;
+ }
+
+ public int getmEtTextBg() {
+ return mEtTextBg;
+ }
+
+ public void setmEtTextBg(int mEtTextBg) {
+ this.mEtTextBg = mEtTextBg;
+ }
+
+ public int getmCursorDrawable() {
+ return mCursorDrawable;
+ }
+
+ public void setmCursorDrawable(int mCursorDrawable) {
+ this.mCursorDrawable = mCursorDrawable;
+ }
+
public enum VCInputType {
NUMBER,
NUMBERPASSWORD,
@@ -70,7 +133,7 @@ public class VerificationCodeView extends LinearLayout implements TextWatcher, V
TEXTPASSWORD,
}
- public VerificationCodeView(Context context, @Nullable AttributeSet attrs) {
+ public VerificationCodeView(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
@SuppressLint({"Recycle", "CustomViewStyleable"})