嗯,有一些库用于创建这种类型的EditText,比如OtpView和android-otpview-pinview,但我是通过使用一些EditText属性和addTextChangedListener()手动完成的。
首先,使用android:inputtype=“number”
和android:maxlength=“1”
允许用户只键入数字。
示例:
1)XML文件:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:gravity="center"
android:orientation="horizontal">
<EditText
android:id="@+id/otp1"
android:layout_width="40dp"
android:layout_height="45dp"
android:backgroundTint="@color/login_start_color"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/black"
android:textColorHighlight="@color/darker_gray"
android:textColorLink="@color/login_start_color"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/otp2"
android:layout_width="40dp"
android:layout_height="45dp"
android:backgroundTint="@color/login_start_color"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/black"
android:textColorHighlight="@color/darker_gray"
android:textColorLink="@color/login_start_color"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/otp3"
android:layout_width="40dp"
android:layout_height="45dp"
android:backgroundTint="@color/login_start_color"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/black"
android:textColorHighlight="@color/darker_gray"
android:textColorLink="@color/login_start_color"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/otp4"
android:layout_width="40dp"
android:layout_height="45dp"
android:backgroundTint="@color/login_start_color"
android:gravity="center"
android:imeOptions="actionDone"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/black"
android:textColorHighlight="@color/darker_gray"
android:textColorLink="@color/login_start_color"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/otp5"
android:layout_width="40dp"
android:layout_height="45dp"
android:backgroundTint="@color/login_start_color"
android:gravity="center"
android:imeOptions="actionDone"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/black"
android:textColorHighlight="@color/darker_gray"
android:textColorLink="@color/login_start_color"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/otp6"
android:layout_width="40dp"
android:layout_height="45dp"
android:backgroundTint="@color/login_start_color"
android:gravity="center"
android:imeOptions="actionDone"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/black"
android:textColorHighlight="@color/darker_gray"
android:textColorLink="@color/login_start_color"
android:textCursorDrawable="@drawable/cursor_drawable"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
2)添加addTextChangedListener()以使所有edittext自动跳转到下一个edittext。
private void setotpinput() {
otp1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().isEmpty()) {
otp2.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
otp2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().isEmpty()) {
otp3.requestFocus();
} else {
otp1.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
otp3.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().isEmpty()) {
otp4.requestFocus();
} else {
otp2.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
otp4.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().isEmpty()) {
otp5.requestFocus();
} else {
otp3.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
otp5.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().isEmpty()) {
otp6.requestFocus();
} else {
otp4.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
otp6.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().isEmpty()) {
otp1.requestFocus();
} else {
otp5.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
如何将转换为带有圆边的按钮?我使用获得了圆角边框形状,但不知怎么需要给边框着色。
SVG 圆形 - <circle> <circle> 标签可用来创建一个圆: 下面是SVG代码: <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg> 对于Opera用
我要做什么::我想使用我当前的实现为圆形图像添加一个黑色边框,如何在不使用第三方库的情况下实现这一点 全面转变。JAVA
问题内容: 请提供有关如何在椭圆形或圆形上进行裁剪的想法。请分享您的想法。 问题答案: 通过增加半径,它将变得更圆滑。 只要图像是正方形,就可以通过将宽度的一半作为拐角半径来获得一个完美的圆: 您还需要添加 斯威夫特4.2
主要内容:圆角矩形,椭圆示例JavaFX Shape类定义了常见的形状,例如线,矩形,圆,Arc,CubicCurve,Ellipse和QuadCurve。 在场景图上绘制矩形需要宽度,高度和左上角的(,)位置。 要在JavaFX中绘制一个矩形,可以使用类。 上面的代码生成以下结果。 圆角矩形 类实现了弧宽和弧高。可以使用这些功能来绘制圆角矩形。 上面的代码生成以下结果。 椭圆示例 上面的代码生成以下结果。
可以使用包的相应方法在图像上绘制各种形状,如圆形,矩形,线条,椭圆,多段线,凸起,多段线,多段线。 可以使用类的方法在图像上绘制一个圆形。 以下是这种方法的语法 - 该方法接受以下参数 - mat - Mat对象,表示要在其上绘制圆的图像。 point - 代表圆中心的对象。 radius - 表示圆的半径的整型变量。 scalar - 表示圆的颜色的标量对象(BGR)。 thickness -