如何更改用户输入的编辑文本的颜色?
Posted
技术标签:
【中文标题】如何更改用户输入的编辑文本的颜色?【英文标题】:How can I change the color of my edit text which is entered by user? 【发布时间】:2021-06-24 11:55:19 【问题描述】:我创建了一个注册页面,现在我选择提示颜色蓝色我想更改在编辑文本中输入的文本颜色请告诉我如何更改文本颜色
这是我的 XML 文件的代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context=".Signup"
android:background="@color/purple_500">
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_
android:layout_
android:layout_marginTop="80dp"
android:background="@drawable/linear_round"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</LinearLayout>
<TextView
android:layout_
android:layout_
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Please Signup..."
android:textColor="@color/white"
android:textStyle="bold"
android:textSize="29sp"
android:gravity="center"
android:layout_marginTop="16dp"
android:id="@+id/textView">
</TextView>
<EditText
android:layout_
android:layout_
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textColor="@color/black"
android:hint="Enter your name"
android:layout_marginTop="250dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:textColorHint="@color/purple_500"
android:id="@+id/name"/>
<EditText
android:id="@+id/pass"
android:layout_
android:layout_
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:hint="Enter your password"
android:inputType="textPassword"
android:textColor="@color/black"
android:textColorHint="@color/purple_500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/name" />
<EditText
android:id="@+id/email"
android:layout_
android:layout_
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:hint="Enter your valid e-mail"
android:inputType="textEmailAddress"
android:textColor="@color/black"
android:textColorHint="@color/purple_500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pass" />
<EditText
android:id="@+id/number"
android:layout_
android:layout_
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:hint="Enter your cell number"
android:inputType="phone"
android:textColor="@color/black"
android:textColorHint="@color/purple_500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/email" />
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/submit"
android:layout_
android:layout_
android:layout_centerInParent="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/number"
android:layout_marginBottom="100dp"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/submit" />
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/trial"
android:layout_
android:layout_
android:layout_centerInParent="true"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/submit"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/trial" />
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/signup_animation"
android:layout_
android:layout_
android:layout_centerInParent="true"
app:layout_constraintBottom_toTopOf="@+id/name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="70dp"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/signup" />
</androidx.constraintlayout.widget.ConstraintLayout>
如何在我的文本视图上添加选取框效果?我可以让文本视图从右向左滚动吗?
【问题讨论】:
查看***.com/questions/2182578/marquee-text-in-android 【参考方案1】:如果TextView
填满整个宽度你需要添加这些代码行
<TextView
.
.
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
/>
也不要忘记为TexrtView
设置选择如下
textview.setSelected(true);
如果TextView
没有填满宽度,唯一的办法就是调用这个方法并将TextView
传递给它。
科特林
fun addMarquee(textView: TextView)
textView.viewTreeObserver.addOnGlobalLayoutListener(object :
ViewTreeObserver.OnGlobalLayoutListener
override fun onGlobalLayout()
val pixels = textView.measuredWidth - 1
val params = textView.layoutParams
params.width = pixels
textView.layoutParams = params
textView.isSelected = true
textView.ellipsize = TextUtils.TruncateAt.MARQUEE
textView.isSingleLine = true
textView.marqueeRepeatLimit = -1
textView.viewTreeObserver.removeOnGlobalLayoutListener(this)
)
Java
public void addMarquee(TextView textView)
textView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener()
@Override
public void onGlobalLayout()
int pixels = textView.getMeasuredWidth() - 1;
ViewGroup.LayoutParams params = textView.getLayoutParams();
params.width = pixels;
textView.setLayoutParams(params);
textView.setSelected(true);
textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
textView.setSingleLine(true);
textView.setMarqueeRepeatLimit(-1);
textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
);
注意:此方法仅在 textView 宽度为 wrap_content
时有效。
【讨论】:
谢谢,但这是 kotlin 代码,我正在使用 java 我将在接下来的几分钟内编辑答案并添加 java 代码。 已更新。只需将addMarquee(findViewById(R.id.text));
添加到您的片段活动的onCreate
如果可行,请接受答案。【参考方案2】:
textColor
属性改变用户输入的文本颜色。
android:textColor="@color/black"
HorizontalScrollView
有一个chid视图,可以水平滚动。
有很多方法可以移动视图。
使用关键字搜索
move view animation android
或 move view programmatically android
【讨论】:
我不想添加滚动视图我只想添加选框效果这个有什么属性吗??? 我想我误解了滚动。动画不像css或html那么容易。 这个怎么样:***.com/questions/14141039/… 我想自动从右到左滚动我的文本。你说得对,在 html 或 css 中更容易以上是关于如何更改用户输入的编辑文本的颜色?的主要内容,如果未能解决你的问题,请参考以下文章
Android TextView中的下划线和更改文本颜色[重复]
Android - 如何更改 TextInputLayout(材料组件)中的文本颜色?