如何在android中制作自定义textview?

时间:2015-12-29 11:16:18

标签: android android-layout android-fragments textview

enter image description here

我正在开发layout.i为这个布局开发了drawable。但是在这个视图中没有调整文本。任何人告诉我关于库的其他guidlines请提供给我。谢谢

3 个答案:

答案 0 :(得分:1)

在Android中,有一种方法setRotation(float),您可以使用它

textview.setRotation(float);
  

注意:此方法已添加到 API 11

所以如果你想支持它,你可以使用这个

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);
}

编辑:这是我的解决方案:

这是我的完整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>

要创建三角形,请在此目录中创建triangle.xml文件:

your_app_name/app/src/main/res/drawable

并且内容包含此代码:

<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>

在您的Java MainActivity类中放置:

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

添加到您的旧价格文字删除效果。

如果您有疑问,请随意提问。 希望有所帮助

答案 1 :(得分:1)

最简单的方法是:

sharedPreferences = this.getSharedPreferences("com.aadil.notes",Context.MODE_PRIVATE);
set = sharedPreferences.getStringSet("notes", null);

    notes.clear()

    if (set != null) {
            notes.addAll(set);
        }
        else {
            notes.add("test data 1");
            notes.add("test data 2");

            set = new HashSet<String>();                    
            set.addAll(notes);
            sharedPreferences.edit().putStringSet("notes", set).apply();
        }

您也可以使用其他布局或edittexts

答案 2 :(得分:1)

enter image description here TextView中有属性。您可以根据您的要求进行轮换 请参考以下示例以供参考

<TextView
                android:id="@+id/won_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:paddingTop="20dp"
                android:rotation="-45"
                android:text="@string/won"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="@android:color/white"
                android:textSize="34sp" />