Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make custom textview in android? [closed]

enter image description here

i am developing layout.i developed drawable for this layout.but text is not adjust in this view.anyone tell me about library are anyother guidlines please provide me.thanks

like image 450
Muhammad Waleed Avatar asked Dec 12 '25 14:12

Muhammad Waleed


2 Answers

In Android there is a method setRotation(float), which you can use it

textview.setRotation(float);

NOTE: this method was added in API 11

so if you want to support it you can use this

if (Build.VERSION.SDK_INT < 11) {

    RotateAnimation animation = new RotateAnimation(oldAngel, newAngel);
    animation.setDuration(100);
    animation.setFillAfter(true);
    watermarkText.startAnimation(animation);
} else {

    watermarkText.setRotation(progress);
}

EDIT: Here's my solution:

Here's my full activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tool="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/colorPrimary">

    <RelativeLayout
        android:id="@+id/item"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="#FFFFFFFF"
        >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:textColor="#FFFFFFFF"
            android:text="HP  EliteBook 1212x"
            android:textAlignment="gravity"
            android:gravity="center"
            android:background="@color/colorPrimaryDark"

            />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="40dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_margin="0dp"
            android:src="@drawable/laptop"/>

        <ImageView
            android:layout_width="175dp"
            android:layout_height="175dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:src="@drawable/triangle"/>

        <LinearLayout
            android:id="@+id/prices"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:orientation="vertical"
            android:padding="7dp"
            android:rotation="-45.0"
            android:textAlignment="center">

            <TextView
                android:id="@+id/old_price"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="200$"
                android:textColor="#FFFFFFFF"
                />

            <TextView
                android:id="@+id/new_price"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/old_price"
                android:layout_gravity="center"
                android:text="400$"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="#FFFFFFFF"/>
        </LinearLayout>


    </RelativeLayout>

</RelativeLayout>

For creating triangle, create triangle.xml file in this directory:

your_app_name/app/src/main/res/drawable

and as content put this code:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <rotate
            android:fromDegrees="-45"
            android:toDegrees="0"
            android:pivotX="150%"
            android:pivotY="20%" >
            <shape
                android:shape="rectangle" >
                <solid android:color="#ff0000" />
            </shape>
        </rotate>
    </item>
</layer-list>

In your Java MainActivity class put:

    TextView oldPrice = (TextView) findViewById(R.id.old_price);
    oldPrice.setPaintFlags(oldPrice.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

to add to your old price text strike-through effect.

If you have a question, please free to ask. Hope it help

The easiest way to do is:

 <TextView
        android:id="@+id/rotated"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="#AA000F"
        android:rotation="-50"
        android:text="ABC"
        android:textColor="#44CC44"
        android:textSize="32sp" />

You can do it with the other layouts or edittexts too

like image 29
asad.qazi Avatar answered Dec 15 '25 04:12

asad.qazi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!