On Android, there is a setRotation (float) method that you can use
textview.setRotation(float);
NOTE. This method has been 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 is my solution:

Here is 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>
To create a triangle, create the triangle.xml file in this directory:
your_app_name/app/src/main/res/drawable
and enter this code as content:
<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 class, MainActivity put:
TextView oldPrice = (TextView) findViewById(R.id.old_price); oldPrice.setPaintFlags(oldPrice.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
to add a drag effect to your old text.
If you have a question, please contact us. Hope this helps.