Android:TextView自定义删除线
16lz
2021-01-23
Android自定义带有删除线的TextView
TextView自定义样式的主要的方法onDraw(Canvas canvas);
项目结构
Manifest
<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.example.textviewdraw"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="19"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@android:style/Theme.NoTitleBar"><activityandroid:name=".MainActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>
Layout布局文件
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.textviewdraw.MainActivity"><com.example.textviewdraw.DrawTextViewandroid:id="@+id/hello"android:textSize="18sp"android:textColor="@android:color/white"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world"/></RelativeLayout>
Java
packagecom.example.textviewdraw;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.util.AttributeSet;importandroid.widget.TextView;publicclassDrawTextViewextendsTextView{publicDrawTextView(Contextcontext){super(context);//初始化PaintinitPaint();}privatevoidinitPaint(){//删除线的颜色和样式paint=newPaint();paint.setColor(Color.RED);paint.setStrokeJoin(Paint.Join.ROUND);paint.setStrokeCap(Paint.Cap.ROUND);paint.setStrokeWidth(3);}publicDrawTextView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);initPaint();}publicDrawTextView(Contextcontext,AttributeSetattrs){super(context,attrs);initPaint();}privatePaintpaint;@OverrideprotectedvoidonDraw(Canvascanvas){//TextView布局的高度和宽度floatx=this.getWidth();floaty=this.getHeight();//根据Textview的高度和宽度设置删除线的位置//四个参数的意思:起始x的位置,起始y的位置,终点x的位置,终点y的位置canvas.drawLine(0f,y/2f,x,y/2f,paint);//super最后调用表示删除线在位于文字的上边//super方法先调用删除线不显示super.onDraw(canvas);}}
Main.java
packagecom.example.textviewdraw;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassMainActivityextendsActivity{privateTextViewmTextView;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTextView=(TextView)findViewById(R.id.hello);}}
方法(2)
TextViewtv=(TextView)findViewById(R.id.text_view);TextPaintpaint=tv.getPaint();paint.setStrikeThruText(true);
一句话搞定
更多相关文章
- Android使用SDK方法详解
- Android 发送普通的post请求的方法
- android EditText插入字符串到光标所在位置
- Android中View绘制流程以及invalidate()等相关方法分析
- Android 获取Gmail邮箱地址方法
- Android拖动控件改变其位置
- ubuntu的android studio调试小米手机的方法
- android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明
- Android 自定义view 和 onMeasure方法介绍