Android自定义带有删除线的TextView

TextView自定义样式的主要的方法onDraw(Canvas canvas);

项目结构

Android:TextView自定义删除线

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

一句话搞定

更多相关文章

  1. Android使用SDK方法详解
  2. Android 发送普通的post请求的方法
  3. android EditText插入字符串到光标所在位置
  4. Android中View绘制流程以及invalidate()等相关方法分析
  5. Android 获取Gmail邮箱地址方法
  6. Android拖动控件改变其位置
  7. ubuntu的android studio调试小米手机的方法
  8. android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明
  9. Android 自定义view 和 onMeasure方法介绍

随机推荐

  1. Android开发工具使用之adb
  2. Android日志(Log类)
  3. android 媒体数据库刷新
  4. android - 为响应度而设计 - 开发文档翻
  5. Android(1.5及以上版本) 开机图片/文字/
  6. Android、JUnit深入浅出(一)——JUnit初步
  7. Android(安卓)7 新特性浅析
  8. Android(安卓)Handler
  9. 解决ScrollView中嵌套RecyclerVIew产生滑
  10. android静默安装的实现