How to underline an EditText - java

I am having some problems to underline an EditText in AndroidStudio.
This is what I am looking for (this is just a photo, not my real text):
But I do not really know any property to do that.
My code right now is really simple. Just the "normal" one:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:layout_margin="16dp"
android:id="#+id/tx_titulo"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="#string/pt_titulo"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:allowUndo="true"
/>
I do not want to underline just the text (in this case "Título"), but the whole PlainText
Does anybody know it?
Greets.

It is default, but try to check your styles. Maybe there is a style that will override the style in the whole application. If there is, just remove it

To do this programatically, you could find an answer in this post.
To set the underline color:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
To remove the underline color:
editText.getBackground().clearColorFilter();
To do it from the XML, you could add background property to do the same thing in your layout.xml with any drawable resource as a background by adding:
android:background="#drawable/mydrawable"
If you have a couple of EditText with the same style configuration, to avoid setting the attribute to each EditText, you could override EditText's default attributes, defining a custom style like it is done here.

Related

Strange TextInputLayout behavior

I am trying to display an end drawable in my textinputlayout. However, the drawable covers the background of the textinputlayout in an unwanted manner (see image Drawable obstructs the background).
The same behaviour occurs when using an outlined style.
Another problem occurs where the suffix behaves the same way (see image Suffix problem).
Furthermore, the error icon is hidden until there is text in the edittext of the textinputlayout (see images No error icon,Error icon).
The error icon also displays the same strange visual behavior.
This is what my textinputlayout looks like:
<com.google.android.material.textfield.TextInputLayout
android:id="#+id/locationTVLayout"
style="#style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hapticFeedbackEnabled="true"
android:hint="Where?"
app:endIconContentDescription="Find my location."
app:endIconDrawable="#drawable/ic_baseline_location_searching_24"
app:endIconMode="custom"
app:endIconTint="#color/colorAccent"
app:errorEnabled="true"
app:startIconDrawable="#drawable/ic_baseline_location_on_24">
<AutoCompleteTextView
android:id="#+id/locationTV"
style="#style/Widget.MaterialComponents.AutoCompleteTextView.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:completionThreshold="1"
android:layout_below="#id/tempInputTV"
android:nextFocusForward="#+id/tempInputTV"
android:selectAllOnFocus="true"
android:singleLine="true"
/>
</com.google.android.material.textfield.TextInputLayout>
My Material gradle reference is :
api 'com.google.android.material:material:1.3.0-alpha02'
Use app:startIconDrawable and app:endIconDrawable instead of android:drawableStart and android:drawableEnd.
Both of these go into your TextInputLayout and not in TextInputEditText.
For more reference, check this out: https://material.io/develop/android/components/text-fields

Can't get rid of the ugly border around ImageButton

I'm working on an Android App which has a few (Next, Back, ... etc) Buttons which are all round and transparent and I use ImageButton for those Buttons, however the problem is there is always a white border around the Button (I use black background so it is very ugly) and the button never appears to be round is appears as some sort of a square-ish shape.
Here is what I tried so far :
Setting the background of the ImageButton in the activity_mypage.xml file to
android:background="#android:color/transparent"
and to
android:background="?android:selectableItemBackground"
and to
android:background="?android:selectableItemBackgroundBorderless"
even to
android:background="#null"
but nothing seems to work on the .xml side.
and I tried the following on the MyPage.java file :
myBtn.setBackgroundResource(0);
and also
myBtn.setBackground(null);
Nothing seems to work anything I do keeps resulting the same (although it removes a gray border from around the Button but none of them makes the Button completely transparent)
This is a screenshot of the button before applying any of above :
And this is a screenshot of the same Button after applying any of those attributes (doesn't really matter if I applied it only to the xml or only to the java file or to both because all results are the same):
This is my xml code for one of my Buttons in xml :
<ImageButton
android:id="#+id/my_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="26dp"
android:layout_marginEnd="37dp"
android:layout_marginRight="37dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:srcCompat="#mipmap/my_btn"
tools:layout_constraintBottom_creator="1"
tools:layout_constraintRight_creator="1"
android:background="#android:color/transparent"
/>
And here is the code for it in the .java file :
ImageButton myBtn= (ImageButton) findViewById(R.id.my_btn);
myBtn.setBackground(null);
myBtn.setBackgroundResource(0);
I'm really lost at this every result I found for this query has suggested one of the above methods but none of these seems to work for me..
Just change
android:background="#android:color/transparent"
to
android:background="#null"
Try with this
android:src="#mipmap/yourimage"
instead of
app:srcCompat="#mipmap/my_btn"
add this to your button
android:background="#drawable/template"
and create a file name it template in your drawable folder
and add this code to it
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="#drawable/btn2imagePressed"></item>
<item android:drawable="#drawable/btn1imageNotPressed"></item> </selector>
You can use ImageView instead of ImageButton, so background issue will not occur
<ImageView
android:id="#+id/my_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="26dp"
android:layout_marginEnd="37dp"
android:layout_marginRight="37dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:src="#mipmap/my_btn"
/>
So after reading some of the posted answers and playing around with the suggestions in my code I noticed that the icon was incorrectly loaded into my mipmap directory instead of drawables and that is because when I imported the icons I selected New -> Image Asset instead of Vector Asset which caused my 'icon' to lose its transparency ...
Thanks to everyone for their replies and answers.

Android adding image to button

I am trying to add an image to a button(image button or normal button) but not in a specific res/drawable folder.
I want this image as a ImageView object or drawable object etc, but I couldn't.
You can set an icon for Button by adding following attribute in XML for Button like this:
android:drawableLeft="#drawable/button_icon"
If you want to know how to do it programmatically, follow this article:
How to programmatically set drawableLeft on Android button?
Or just add 'background':
<Button
android:id="#+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/qrcode"/>
But i think it's better if you use ImageButton, see this example:
<ImageButton
android:id="#+id/searchImageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#android:drawable/your_image_drawable" />
Use ImageButton and add src in your background:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#android:drawable/yourImageNameHere"

android TextView doesn't show hebrew fonts

I'm trying to present Hebrew text in m TextView.
I have read here I need to change the font from default android's to a hebrew supporting one.
I have tried few solutions, but none of them worked:
Typeface font= Typeface.createFromAsset(mContext.getAssets(), "fonts/Raanana.ttf");
titleTextView.setTypeface(font);
titleTextView.setText(mTitles[position]);
or:
titleTextView.setText(Html.fromHtml(mTitles[position]));
here is my xml:
<ImageView
android:id="#+id/todo_row_image"
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_marginBottom="32dp"
android:layout_marginLeft="21dp"
android:contentDescription="my image" />
<TextView
android:id="#+id/todo_row_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:lines="1"
android:text="#+id/titleTextView"
android:layout_toRightOf="#id/todo_row_image"
android:textSize="12sp" >
</TextView>
<TextView
android:id="#+id/todo_row_date"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="#id/todo_row_title"
android:layout_marginTop="6dp"
android:lines="1"
android:text="#+id/dateTextView"
android:textSize="12sp" >
</TextView>
any idea how to solve this?
is there a way to define default font per application? per Layout?
Hebrew in a TextView works well "right out of the box". Maybe there are issues with the BIDI, but generally it displays it good.
Regarding you second question, how can you set up a layout to be used when using hebrew, take a look at this:
RTL Languages support in android and resource qualifiers
Base on my experience, if you specify on the TextView android:singleLine="true" it will not show Hebrew characters, it's definitely a bug in the android source code and might be fixed in a later release.
based on that I believe that android:lines="1" is what is causing the issue for you.

Textview android:scrollHorizontally restarting on configuration change

I have the following Textview:
<TextView
android:id="#+id/detailsText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Long text Long text Long text Long text Long text Long text "
android:textAppearance="?android:attr/textAppearanceLarge"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true" />
The text is automatically scrolling from right to left (which is what I'm looking for) but after a configuration change the text restart scrolling from the beginning. I have tried to use android:configChanges="orientation|keyboardHidden|screenSize" and handle the configuration change in my code but this is not working. I also find out that this technique is not advised anymore, and tried to use Fragments instead, but nothing is working. I tried also to find out which value scrollHorizontally is modifying to do it's scrolling so I can try to save and restore it, but I never find it (textview.getScrollX() always stay at 0 for example).
I also noticed that this "scrolling restart" also happen when I use the textview.setVisibility(View.GONE); and textview.setVisibility(View.VISIBLE); methods.
Thanks for the help.

Categories

Resources