Düzenleme metninin altındaki mavi rengi değiştirmek istiyorum, hangi özellik olduğunu bilmiyorum.
Bunun için farklı bir arka plan rengi kullanmayı denedim ama işe yaramadı.
Aşağıya bir resim ekledim:
Düzenleme metninin altındaki mavi rengi değiştirmek istiyorum, hangi özellik olduğunu bilmiyorum.
Bunun için farklı bir arka plan rengi kullanmayı denedim ama işe yaramadı.
Aşağıya bir resim ekledim:
Yanıtlar:
Aslında bir EditText'in alt çizgi rengini programlı olarak ayarlamak oldukça kolaydır (sadece bir kod satırı).
Rengi ayarlamak için:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
Rengi kaldırmak için:
editText.getBackground().clearColorFilter();
Not: EditText odaklandığında , ayarladığınız renk etkili olmaz, bunun yerine odak rengi vardır.
API Referansı:
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
Renderer
geçersiz kılarsınız ? Bunu bir arama çubuğu için nasıl çalıştıracağımı anlamaya çalışıyorum.
SearchBarRenderer
tipte değil EditText
. Çalışmasını sağlayamıyorum.
Kullan android:backgroundTint=""
senin içinde EditText
xml düzeni.
API <21 AppCompatEditText
için destek kitaplığından kullanabilirsiniz .app:backgroundTint=""
android:background="@null"
api <21 olan cihazlar için.
Her durum için EditText
(odak, etkin, etkin) farklı bir arka plan görüntüsü kullanmanız gerekir .
http://android-holo-colors.com/
Yukarıdaki sitede Holo temasındaki birçok bileşenden görseller alabilirsiniz. Sadece "Metni Düzenle" yi ve istediğiniz rengi seçin. Sayfanın altında bir önizleme görebilirsiniz.
.Zip dosyasını indirin ve kaynakları projenize kopyalayıp yapıştırın (resimler ve XML).
XML'niz şu şekilde adlandırılmışsa: apptheme_edit_text_holo_light.xml (veya benzer bir şey):
XML "styles.xml" dosyanıza gidin ve özel EditText
stili ekleyin :
<style name="EditTextCustomHolo" parent="android:Widget.EditText">
<item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
<item name="android:textColor">#ffffff</item>
</style>
Bunu şu şekilde yap EditText
:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/EditTextCustomHolo"/>
Ve işte bu, umarım size yardımcı olur.
Bu, Android'in eski ve yeni sürümü için gayet iyi çalışıyor (API 10'da bile iyi çalışıyor!).
Bu stili şu şekilde tanımlayın styles.xml
:
<style name="EditText.Login" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="colorAccent">@color/blue</item>
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlActivated">@color/blue</item>
</style>
Ve şimdi XML'nizde bunu tema ve stil olarak ayarlayın ( ayarlanacak stiltextColor
ve diğer tüm şeyleri ayarlamak için tema ):
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
style="@style/EditText.Login"
android:theme="@style/EditText.Login"/>
Bu çözüm, daha yeni Android sürümlerinde (Lollipop veya Marshmallow sonrası), seçim tutamaçlarının altı çizili olan küçük bir kullanıcı arayüzü sorununa neden olur.
Bu konu bu başlıkta tartışılmaktadır . (Bu çözümü şahsen denemedim)
değiştirebileceğiniz Altı Çizili arasında EditText bunu belirterek renk styles.xml . Uygulamanızın tema styles.xml'sine aşağıdakileri ekleyin.
<item name="android:textColorSecondary">@color/primary_text_color</item>
Ana tarafından yorum bölümünde belirtildiği gibi
<item name="android:colorControlActivated">@color/black</item>
bunu tema stilinde ayarlamak, edittext alt çizgisinin rengini değiştirmek için iyi çalışır.
android:textColorSecondary
geri okunun ve DrawerLayout
hamburger simgesinin rengini belirlemek için de kullanıldığını unutmayın .
<item name="colorControlNormal">@color/edittext_underline_color</item>
Gezinme çubuğu renklendirme sorunu nedeniyle textColorSecondary yerine kullanmayı bıraktım .
Bu nedenle, çekilebilir klasörünüzde yeni bir .xml dosyası oluşturmanız gerekir.
Bu dosyaya şu kodu yapıştırın:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="8dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/white"/>
</shape>
</item>
</layer-list>
Ve EditText'inizde,
android:background="@drawable/your_drawable"
Çekilebilir xml'nizle oynayabilir, köşeleri ayarlayabilir, dolgular vb.
Uygulamanızın stilinde colorAccent özelliğini tanımlayın . Burada bir örnek buluyorsunuz
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/action_bar</item>
</style>
EditText rengini programlı olarak sadece bu kod satırını kullanarak değiştirebilirsiniz:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
Düzenleme metninin kenarlığının arka plan rengini değiştirmek için aşağıdaki kodu kullanın.
Drawable altında yeni XML dosyası oluşturun.
abc.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00000000" />
<stroke android:width="1dip" android:color="#ffffff" />
</shape>
ve bunu düzenleme metninizin arka planı olarak ekleyin
android:background="@drawable/abc"
Alt çizgi rengini değiştirmek için, bunu uygulama temanızda kullanabilirsiniz:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#ffe100</item>
<item name="colorControlHighlight">#ffe100</item>
</style>
Kayan etiket rengini değiştirmek için aşağıdaki temayı yazın:
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>
ve bu temayı düzeninizde kullanın:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<EditText
android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:capitalize="characters"
android:hint="User Name"
android:imeOptions="actionNext"
android:inputType="text"
android:singleLine="true"
android:textColor="@android:color/white" />
</android.support.design.widget.TextInputLayout>
Bunu AppCompatEditText ve renk seçici ile yapabilirsiniz:
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="@color/selector_edittext_underline" />
selector_edittext_underline.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/focused_color"
android:state_focused="true" />
<item android:color="@color/hint_color" />
</selector>
API <21 olan cihazları desteklemeniz gerekmiyorsa, xml'de backgroundHint kullanın, örneğin:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Task Name"
android:ems="10"
android:id="@+id/task_name"
android:layout_marginBottom="15dp"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textColorLink="@color/blue"
android:textColorHint="@color/blue"
android:backgroundTint="@color/lighter_blue" />
Daha iyi destek ve geri dönüşler için @Akariuz çözümünü kullanın. backgroundHint en acısız çözümdür, ancak geriye dönük olarak uyumlu değildir, gereksinimlerinize göre arama yapın.
Xml kodundaki android: backgroundTint'i renginize değiştirin