`

2011.09.26(3)——— android sample之Notepad(带下划线的TestView)

阅读更多
2011.09.26(3)——— android sample之Notepad(带下划线的TestView)
参考:http://www.cnblogs.com/phinecos/archive/2009/08/27/1555221.html

notepad里面用于记事的TextView

public static class LinedEditText extends EditText {
        private Rect mRect;
        private Paint mPaint;

        // we need this constructor for LayoutInflater
        public LinedEditText(Context context, AttributeSet attrs) {
            super(context, attrs);
            
            mRect = new Rect();
            mPaint = new Paint();
            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setColor(0x800000FF);
        }
        
        @Override
        protected void onDraw(Canvas canvas) {
            int count = getLineCount();
            Rect r = mRect;
            Paint paint = mPaint;

            for (int i = 0; i < count; i++) {
                int baseline = getLineBounds(i, r);

                canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
            }

            super.onDraw(canvas);
        }
    }


主要工作就是重载onDraw方法,利用从TextView继承下来的getLineCount函数获取文本所占的行数,以及getLineBounds来获取特定行的基准高度值,而且这个函数第二个参数会返回此行的“外包装”值。再利用这些值绘制这一行的线条。

xml

<view xmlns:android="http://schemas.android.com/apk/res/android"
    class="com.example.android.notepad.NoteEditor$LinedEditText"
    android:id="@+id/note"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/transparent"
    android:padding="5dip"
    android:scrollbars="vertical"
    android:fadingEdge="vertical"
    android:gravity="top"
    android:textSize="22sp"
    android:capitalize="sentences"
/>


分享到:
评论

相关推荐

    2011.09.23——— android sample之Notepad(context menu)

    标题中的“2011.09.23——— android sample之Notepad(context menu)”表明这是一个关于Android应用开发的示例项目,具体是针对Notepad应用的上下文菜单(Context Menu)功能的实践。在Android开发中,上下文菜单是...

    安卓Android源码——NotePad便签.zip

    《安卓Android源码——NotePad便签》 在Android操作系统中,NotePad是经典的示例应用,用于展示基本的数据库操作、UI设计以及事件处理等核心功能。这个压缩包文件包含的就是NotePad应用的源代码,是学习Android开发...

    Notepad++ 插件,AndroidLogger.V1.2.7. 可以让安卓日志自动显示颜色

    AndroidLogger.V1.2.7 是专为Notepad++设计的一个插件,它针对Android开发人员优化了日志查看体验。 Android应用程序在开发过程中会产生大量的日志信息,通常这些日志是以纯文本格式存储,以.log为扩展名。默认情况...

    notepad++.7.9.3.Installer.7z

    《深入解析Notepad++ 7.9.3安装程序》 Notepad++,这款小巧而功能强大的文本编辑器,自其诞生以来就深受广大程序员、开发者以及文本处理爱好者的喜爱。7.9.3版本是该软件的一个稳定迭代,不仅在性能上有所提升,...

    带Androidlogger插件的notepad++

    【标题】"带Androidlogger插件的notepad++"是一个专为Android开发者设计的文本编辑器增强版本,它集成了Androidlogger插件,使得在使用Notepad++进行Android代码编辑时,可以方便地查看和分析日志信息。Notepad++...

    Notepad++.7.6.1.bin.x64.rar

    《Notepad++.7.6.1.bin.x64.rar——高效文本编辑器的绿色免安装体验》 Notepad++是一款广受欢迎的免费源代码编辑器,尤其在编程领域,它以其强大的功能和高度的可定制性深受程序员喜爱。标题中的"Notepad++.7.6.1....

    官方版Notepad++7.9.3.exe安装包windows系统64位

    Notepad++是一款非常受欢迎的免费源代码编辑器,尤其在Windows操作系统中被广泛使用。它支持多种编程语言的语法...Notepad++ 7.9.3的64位版本确保了在现代计算机上的高效运行,是Windows用户不可或缺的开发工具之一。

    notepad_share_encrypt.hdoc..bin

    notepad_share_encrypt.hdoc..bin

    电脑常用运行命令

    **notepad** —— 记事本 - **命令功能**:启动记事本程序,用于创建和编辑文本文件。 - **应用场景**:简单的文本编辑需求。 #### 29. **nslookup** —— 域名解析工具 - **命令功能**:用于查询DNS记录,了解...

    Notepad3_5.21.905.1_x86_Setup.zip

    Notepad3是一款备受推崇的文本编辑器,专为那些寻求高效、轻量级且功能丰富的替代标准记事本的人设计。这款编辑器基于Scintilla组件,这是一个强大的源代码编辑控件,支持多种编程语言的语法高亮显示,极大地提升了...

    android入门Notepad+源代码.rar

    Android入门教程:Notepad+源代码解析 在Android开发领域,初学者往往需要从简单的项目开始学习,以便逐步掌握这个强大的移动平台的工作原理。"Notepad+"是一个经典的入门级项目,它模仿了桌面操作系统中的记事本...

    Notepad3_5.21.818.1_rc_Setup.zip

    Notepad3_5.21.818.1_rc_Setup.zip是一个针对Windows 10操作系统设计的压缩包文件,其中包含了Notepad3的最新版本——5.21.818.1的release candidate(RC)安装程序,即Notepad3_5.21.818.1_rc_Setup.exe。Notepad3...

    开始→运行→输入的命令集锦.txt

    `notepad` —— 记事本 `notepad` 命令用于启动记事本程序,这是一个简单的文本编辑器,可用于创建或编辑文本文件。 #### 11. `cleanmgr` —— 磁盘清理工具 `cleanmgr` 命令用于启动磁盘清理工具,可以帮助用户...

    npp.8.3.3.Installer.x64.exe Notepad++

    npp.8.3.3.Installer.x64.exe Notepad++

    Notepad++-x86-Androidlog.zip

    本篇文章将详细介绍如何利用Notepad++的特定版本——Notepad++-x86-Androidlog.zip,来实现对Android设备的adb日志(adb logcat)的实时查看。 首先,我们需要了解adb(Android Debug Bridge),它是Android开发者...

    AndroidLogger——MGYH.zip

    【AndroidLogger——MGYH.zip】是一个与Android平台相关的压缩包,从文件名可以推测它包含了一个名为"AndroidLogger"的组件或者库。这个组件可能是用于日志记录和调试目的,帮助开发者收集和分析应用程序运行时的...

    android sdk 自带 实例(samples)

    The list below provides a summary of the sample applications that are available with the Android SDK. Using the links on this page, you can view the source files of the sample applications in your ...

    Notepad3 _5.20.915.1.zip

    《Notepad3_5.20.915.1.zip——一款强大的文本编辑器升级体验》 在数字化时代,文本编辑器是我们日常工作中不可或缺的工具之一,它们用于创建、修改和查看各种文本文件。Notepad3是一款备受赞誉的文本编辑器,其...

    Notepad++(npp.8.4.1.portable.arm64.zip)

    在描述中,"Notepad++(npp.8.4.1.portable.arm64.zip)"重复了标题的信息,暗示该压缩包包含的是Notepad++的特定版本,适用于基于ARM64处理器的设备,如某些现代的Android平板或基于Arm的Windows电脑。便携式版本...

    npp.7.8.Installer.exe 最新notepad++编辑工具

    3. **多文档界面**:Notepad++ 支持同时打开多个文档,可以在不同文件间轻松切换,方便进行多任务处理。 4. **自定义插件**:Notepad++拥有丰富的插件库,用户可以根据需求安装,比如FTP上传插件、代码折叠插件等,...

Global site tag (gtag.js) - Google Analytics