From c183acb5308f3c12675d601f28743019b9cf3ed1 Mon Sep 17 00:00:00 2001 From: Ju Duan Date: Fri, 7 Mar 2025 16:54:41 +0800 Subject: [PATCH] add background for input box --- .idea/compiler.xml | 6 + .idea/deploymentTargetSelector.xml | 10 ++ .idea/gradle.xml | 7 +- .idea/kotlinc.xml | 6 + .idea/migrations.xml | 10 ++ .idea/misc.xml | 2 +- .idea/runConfigurations.xml | 11 +- .idea/vcs.xml | 6 + SplitEditTextView/build.gradle | 37 +--- .../src/main/AndroidManifest.xml | 6 +- .../java/com/al/open/SplitEditTextView.java | 34 +++- .../src/main/res/values/attrs.xml | 1 + build.gradle | 11 +- demo/build.gradle | 35 ++-- demo/src/main/AndroidManifest.xml | 6 +- .../al/split_edit_text_view/MainActivity.kt | 166 +++++++++--------- .../al/split_edit_text_view/TestActivity.java | 26 +-- .../drawable/custom_edit_dev_name_normal.xml | 16 ++ demo/src/main/res/layout/activity_main.xml | 11 +- gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 0 21 files changed, 240 insertions(+), 171 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/deploymentTargetSelector.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/migrations.xml create mode 100644 .idea/vcs.xml create mode 100644 demo/src/main/res/drawable/custom_edit_dev_name_normal.xml mode change 100644 => 100755 gradlew diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..82d64ee --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 89c5b06..f4bbb0d 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,11 +4,10 @@ diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..6d0ee1c --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index f67c054..2524228 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -9,7 +9,7 @@ - + diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml index 7f68460..16660f1 100644 --- a/.idea/runConfigurations.xml +++ b/.idea/runConfigurations.xml @@ -3,9 +3,14 @@ diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SplitEditTextView/build.gradle b/SplitEditTextView/build.gradle index 8f01009..28dba0a 100644 --- a/SplitEditTextView/build.gradle +++ b/SplitEditTextView/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" - + compileSdk = rootProject.ext.compileSdk + namespace = "com.al.open" defaultConfig { - minSdkVersion 21 - targetSdkVersion 29 + minSdk = rootProject.ext.minSdk + targetSdk = rootProject.ext.targetSdk versionCode 1 versionName "1.0" @@ -24,28 +23,8 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation 'androidx.appcompat:appcompat:1.1.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'androidx.appcompat:appcompat:1.7.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' } - -apply plugin: 'com.novoda.bintray-release' - -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.novoda:bintray-release:0.9.1' - } -} - -publish { - userOrg = 'keeplearn' - groupId = 'com.open.keeplearn' - artifactId = 'SplitEditTextView' - publishVersion = '1.2.3' - desc = 'A Library Of Android UI.' - website = 'https://github.com/Chen-keeplearn/SplitEditTextView' -} \ No newline at end of file diff --git a/SplitEditTextView/src/main/AndroidManifest.xml b/SplitEditTextView/src/main/AndroidManifest.xml index e3256dc..97330b7 100644 --- a/SplitEditTextView/src/main/AndroidManifest.xml +++ b/SplitEditTextView/src/main/AndroidManifest.xml @@ -1,5 +1 @@ - - - / - \ No newline at end of file + \ No newline at end of file diff --git a/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java b/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java index 4ad4d62..a3a330e 100644 --- a/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java +++ b/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java @@ -3,10 +3,14 @@ import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.drawable.Drawable; import android.os.Build; import android.text.InputFilter; import android.util.AttributeSet; @@ -18,7 +22,7 @@ import java.lang.reflect.Field; -public class SplitEditTextView extends AppCompatEditText{ +public class SplitEditTextView extends AppCompatEditText { //密码显示模式:隐藏密码,显示圆形 public static final int CONTENT_SHOW_MODE_PASSWORD = 1; //密码显示模式:显示密码 @@ -36,6 +40,7 @@ public class SplitEditTextView extends AppCompatEditText{ private Paint mPaintContent; private Paint mPaintBorder; private Paint mPaintUnderline; + private Paint inputBackgroundPaint; //边框大小 private Float mBorderSize; //边框颜色 @@ -56,6 +61,8 @@ public class SplitEditTextView extends AppCompatEditText{ private float mSpaceSize; //输入框样式 private int mInputBoxStyle; + private Drawable mInputBoxBackground; + private Drawable[] mInputBoxBackgroundDrawables; //字体大小 private float mTextSize; //字体颜色 @@ -74,6 +81,7 @@ public class SplitEditTextView extends AppCompatEditText{ private int mUnderlineFocusColor;//下划线输入样式下,输入框获取焦点时下划线颜色 private int mUnderlineNormalColor;//下划线输入样式下,下划线颜色 + public SplitEditTextView(Context context) { this(context, null); } @@ -103,6 +111,7 @@ private void initAttrs(Context c, AttributeSet attrs) { mContentNumber = array.getInt(R.styleable.SplitEditTextView_contentNumber, 6); mContentShowMode = array.getInteger(R.styleable.SplitEditTextView_contentShowMode, CONTENT_SHOW_MODE_PASSWORD); mInputBoxStyle = array.getInteger(R.styleable.SplitEditTextView_inputBoxStyle, INPUT_BOX_STYLE_CONNECT); + mInputBoxBackground = array.getDrawable(R.styleable.SplitEditTextView_inputBoxBackground); mSpaceSize = array.getDimension(R.styleable.SplitEditTextView_spaceSize, dp2px(10f)); mTextSize = array.getDimension(R.styleable.SplitEditTextView_android_textSize, sp2px(16f)); mTextColor = array.getColor(R.styleable.SplitEditTextView_android_textColor, Color.BLACK); @@ -139,6 +148,12 @@ private void init() { mPaintUnderline.setStrokeWidth(mBorderSize); mPaintUnderline.setColor(mUnderlineNormalColor); + if (mInputBoxBackground != null && mInputBoxBackground.getConstantState() != null) { + mInputBoxBackgroundDrawables = new Drawable[mContentNumber]; + for (int i = 0; i < mContentNumber; i++) { + mInputBoxBackgroundDrawables[i] = mInputBoxBackground.getConstantState().newDrawable().mutate(); + } + } //避免onDraw里面重复创建RectF对象,先初始化RectF对象,在绘制时调用set()方法 //单个输入框样式的RectF @@ -365,12 +380,25 @@ private void drawUnderlineStyle(Canvas canvas) { * 所以算上边框 +(i+1)*2*mBorderSize */ private void drawSingleStyle(Canvas canvas) { + float contentItemWidth = getContentItemWidth(); for (int i = 0; i < mContentNumber; i++) { mRectFSingleBox.setEmpty(); - float left = i * getContentItemWidth() + i * mSpaceSize + i * mBorderSize * 2 + mBorderSize / 2; - float right = i * mSpaceSize + (i + 1) * getContentItemWidth() + (i + 1) * 2 * mBorderSize - mBorderSize / 2; + float left = i * contentItemWidth + i * mSpaceSize + i * mBorderSize * 2 + mBorderSize / 2; + float right = left + contentItemWidth; //为避免在onDraw里面创建RectF对象,这里使用rectF.set()方法 mRectFSingleBox.set(left, mBorderSize / 2, right, getHeight() - mBorderSize / 2); + if (mInputBoxBackgroundDrawables != null + && mInputBoxBackgroundDrawables.length == mContentNumber + && mInputBoxBackgroundDrawables[i] != null) { + // draw background image + // Draw the rounded rectangle with the background image + mInputBoxBackgroundDrawables[i].setBounds( + (int) mRectFSingleBox.left, + (int) mRectFSingleBox.top, + (int) mRectFSingleBox.right, + (int) mRectFSingleBox.bottom); + mInputBoxBackgroundDrawables[i].draw(canvas); + } canvas.drawRoundRect(mRectFSingleBox, mCornerSize, mCornerSize, mPaintBorder); } } diff --git a/SplitEditTextView/src/main/res/values/attrs.xml b/SplitEditTextView/src/main/res/values/attrs.xml index 3c64cc6..0f37628 100644 --- a/SplitEditTextView/src/main/res/values/attrs.xml +++ b/SplitEditTextView/src/main/res/values/attrs.xml @@ -35,6 +35,7 @@ + diff --git a/build.gradle b/build.gradle index 944f87c..d1da8f5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,16 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.3.72" + ext.kotlin_version = '2.0.0' + ext.compileSdk = 35 + ext.minSdk = 21 + ext.targetSdk = 34 repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:8.7.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -18,7 +21,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } diff --git a/demo/build.gradle b/demo/build.gradle index 0918519..3f52907 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -1,15 +1,13 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" - + compileSdk = rootProject.ext.compileSdk + namespace = "com.al.split_edit_text_view" defaultConfig { + minSdk = rootProject.ext.minSdk + targetSdk = rootProject.ext.targetSdk applicationId "com.al.split_edit_text_view" - minSdkVersion 21 - targetSdkVersion 29 versionCode 1 versionName "1.0" @@ -22,19 +20,26 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.3.0' - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - //implementation project(path: ':SplitEditTextView') - implementation 'com.open.keeplearn:SplitEditTextView:1.2.3' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' - implementation 'com.google.android.material:material:1.1.0' + implementation 'androidx.core:core-ktx:1.15.0' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.constraintlayout:constraintlayout:2.2.1' + implementation project(path: ':SplitEditTextView') + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' + implementation 'com.google.android.material:material:1.12.0' } \ No newline at end of file diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml index 3e333a3..639e01d 100644 --- a/demo/src/main/AndroidManifest.xml +++ b/demo/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + - + diff --git a/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt b/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt index ae13e09..07e9a73 100644 --- a/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt +++ b/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt @@ -2,96 +2,92 @@ package com.al.split_edit_text_view import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.widget.Toast -import com.al.open.OnInputListener -import com.al.open.SplitEditTextView -import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - - btnChangeStyle.setOnClickListener { - when (splitEdit1.inputBoxStyle) { - SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> { - splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT - } - SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> { - splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE - } - SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> { - splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE - } - } - - when (splitEdit2.inputBoxStyle) { - SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> { - splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT - } - SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> { - splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE - } - SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> { - splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE - } - } - - when (splitEdit3.inputBoxStyle) { - SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> { - splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT - } - SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> { - splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE - } - SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> { - splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE - } - } - - } - - btnChangeMode.setOnClickListener { - if (splitEdit1.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) { - splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT - } else { - splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD - } - if (splitEdit2.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) { - splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT - } else { - splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD - } - if (splitEdit3.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) { - splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT - } else { - splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD - } - } - - - splitEdit1.setOnInputListener(object : OnInputListener() { - override fun onInputFinished(content: String?) { - Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show() - } - - override fun onInputChanged(text: String?) { - //Toast.makeText(this@MainActivity,text,Toast.LENGTH_SHORT).show() - } - }) - - splitEdit2.setOnInputListener(object : OnInputListener() { - override fun onInputFinished(content: String?) { - Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show() - } - - }) - - splitEdit3.setOnInputListener(object : OnInputListener() { - override fun onInputFinished(content: String?) { - Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show() - } - }) +// +// btnChangeStyle.setOnClickListener { +// when (splitEdit1.inputBoxStyle) { +// SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> { +// splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT +// } +// SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> { +// splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE +// } +// SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> { +// splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE +// } +// } +// +// when (splitEdit2.inputBoxStyle) { +// SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> { +// splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT +// } +// SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> { +// splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE +// } +// SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> { +// splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE +// } +// } +// +// when (splitEdit3.inputBoxStyle) { +// SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> { +// splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT +// } +// SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> { +// splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE +// } +// SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> { +// splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE +// } +// } +// +// } +// +// btnChangeMode.setOnClickListener { +// if (splitEdit1.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) { +// splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT +// } else { +// splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD +// } +// if (splitEdit2.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) { +// splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT +// } else { +// splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD +// } +// if (splitEdit3.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) { +// splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT +// } else { +// splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD +// } +// } +// +// +// splitEdit1.setOnInputListener(object : OnInputListener() { +// override fun onInputFinished(content: String?) { +// Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show() +// } +// +// override fun onInputChanged(text: String?) { +// //Toast.makeText(this@MainActivity,text,Toast.LENGTH_SHORT).show() +// } +// }) +// +// splitEdit2.setOnInputListener(object : OnInputListener() { +// override fun onInputFinished(content: String?) { +// Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show() +// } +// +// }) +// +// splitEdit3.setOnInputListener(object : OnInputListener() { +// override fun onInputFinished(content: String?) { +// Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show() +// } +// }) } } \ No newline at end of file diff --git a/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java b/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java index 24c3ea4..99e5a7a 100644 --- a/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java +++ b/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java @@ -15,18 +15,18 @@ class TestActivity extends AppCompatActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); - splitEditTextView = findViewById(R.id.splitTextViewTest); - - splitEditTextView.setOnInputListener(new OnInputListener() { - @Override - public void onInputFinished(String content) { - - } - - @Override - public void onInputChanged(String text) { - super.onInputChanged(text); - } - }); +// splitEditTextView = findViewById(R.id.splitTextViewTest); +// +// splitEditTextView.setOnInputListener(new OnInputListener() { +// @Override +// public void onInputFinished(String content) { +// +// } +// +// @Override +// public void onInputChanged(String text) { +// super.onInputChanged(text); +// } +// }); } } diff --git a/demo/src/main/res/drawable/custom_edit_dev_name_normal.xml b/demo/src/main/res/drawable/custom_edit_dev_name_normal.xml new file mode 100644 index 0000000..27fd344 --- /dev/null +++ b/demo/src/main/res/drawable/custom_edit_dev_name_normal.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/demo/src/main/res/layout/activity_main.xml b/demo/src/main/res/layout/activity_main.xml index 723138a..11a7bc2 100644 --- a/demo/src/main/res/layout/activity_main.xml +++ b/demo/src/main/res/layout/activity_main.xml @@ -44,8 +44,8 @@ android:layout_marginTop="20dp" android:textColor="@color/colorPrimary" android:textSize="30sp" - app:borderColor="@color/colorPrimary" - app:borderSize="2dp" + app:borderColor="@android:color/transparent" + app:borderSize="0dp" app:contentNumber="4" app:contentShowMode="password" app:corner_size="10dp" @@ -53,6 +53,7 @@ app:cursorWidth="6dp" app:inputBoxSquare="true" app:inputBoxStyle="singleBox" + app:inputBoxBackground="@drawable/custom_edit_dev_name_normal" app:spaceSize="20dp" app:underlineFocusColor="@android:color/black" app:underlineNormalColor="#A8A8A8" /> @@ -70,7 +71,8 @@ app:cursorHeight="20dp" app:divisionLineColor="@color/colorAccent" app:divisionLineSize="2dp" - app:inputBoxStyle="connectBox" /> + app:inputBoxStyle="connectBox" + android:visibility="invisible"/> + app:underlineNormalColor="@color/colorPrimary" + android:visibility="invisible"/> diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c23e0a5..8609875 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Jul 25 18:34:35 CST 2020 +#Thu Mar 06 21:11:46 CST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/gradlew b/gradlew old mode 100644 new mode 100755