Android学习笔记技巧之给文本加边框

BorderTextViews.Java

[java] view plain copy

  1. package xiaosi.BorderTextView;
  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.Color;
  5. import android.graphics.Paint;
  6. import android.util.AttributeSet;
  7. import android.widget.TextView;
  8. public class BorderTextViews extends TextView
  9. {
  10. private Paint paint = null;
  11. private int color = Color.GRAY;
  12. public BorderTextViews(Context context, AttributeSet attrs)
  13. {
  14. super(context, attrs);
  15. }
  16. //设置边框颜色
  17. public void setPaintColor(int color){
  18. this.color = color;
  19. }
  20. @Override
  21. protected void onDraw(Canvas canvas)
  22. {
  23. super.onDraw(canvas);
  24. paint = new Paint();
  25. //给边框设置颜色
  26. paint.setColor(color);
  27. //上
  28. canvas.drawLine(0, 0, this.getWidth()-1, 0, paint);
  29. //左
  30. canvas.drawLine(0, 0, 0, this.getHeight()-1, paint);
  31. //下
  32. canvas.drawLine(0, this.getHeight()-1, this.getWidth()-1, this.getHeight()-1, paint);
  33. //右
  34. canvas.drawLine(this.getWidth()-1, 0, this.getWidth()-1, this.getHeight()-1, paint);
  35. }
  36. }

[java] view plain copy

  1. package xiaosi.BorderTextView;
  2. import android.app.Activity;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. public class BorderTextViewActivity extends Activity {
  6. /** Called when the activity is first created. */
  7. private BorderTextViews borderTextView = null;
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.main);
  12. borderTextView = (BorderTextViews)findViewById(R.id.Border);
  13. borderTextView.setPaintColor(Color.GRAY);
  14. }
  15. }

main.xml

[java] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical"
  6. android:background="#CCFF66">
  7. <xiaosi.BorderTextView.BorderTextViews
  8. android:id="@+id/Border"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:textColor="#C71585"
  12. android:layout_marginTop="20dp"
  13. android:padding="10dp"
  14. android:layout_gravity="center"
  15. android:text="在画布上画边框" />
  16. </LinearLayout>
时间: 2024-10-31 02:56:50

Android学习笔记技巧之给文本加边框的相关文章

Android学习笔记之fragment的静态加载和动态加载

1.xml布局文件: main.xml 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" > 4 5 <LinearLayout 6 android:id="@+i

Android学习笔记—第九章 Activity的加载模式

第九章 Activity的加载模式 task:类似于栈,每次打开界面会创建一个task,然后将这开启的界面放入到该task中. (1)standard:默认模式 每次都会创建一个新的界面,将该界面加入task中 (2)singleTop:栈顶单实例模式 a. 如果目标Activity不存在,创建一个新的Activity,存入到task中 b. 如果目标Activity已经存在,并且处于栈顶,不会再创建新的Activity c. 如果目标Activity已经存在,但不处于栈顶,创建一个新的Acti

Android学习笔记技巧之垂直和水平滚动视图

[java] view plain copy <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_conte

Pro Android学习笔记(三三):Menu(4):Alternative菜单

什么是Alternative menu(替代菜单) 举个例子,Activity显示一个文本文件.如果用户想对文本文件进行编辑,Activity不提供编辑能力,但可由其他activity或者其他应用提供.我们将相关信息存储在一个intent中,例如该文本的Uri.这个intent可以匹配系统的多个应用,替代菜单将这些应用一一列出,菜单项的title就是该可被调用的activity的名字,图标也为该可被调用的activity的图表. 小例子说明 我们通过一个小例子进行学习,简单地打开一个URL:we

Android学习笔记(二二): 多页显示-Tag的使用

在手机屏幕中,Tab也是比较常用的,通常和List结合,例如我们手机的通信录.下面是Tag的结构. TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout.TabWidget就是每个tab的标签,FrameLayout则是tab内容. 如果我们使用extends TabAcitivty,如同ListActivity,TabHost必须设置为@android:id/tabhost TabWidget必须设置android:id为@android:id/tabs F

Android学习笔记(四三):文件访问

之前我们学习了通过preference和SQLite数据库进行数据存储,也可以通过文件方式.文件可以是在应用打包时预置,也可以是应用所生成. 文件访问有两种方式:一:静态数据的文件可以防止在res/raw中,这些文件是只读的,只有在应用版本升级的时候进行修改,或者我们先读出这些数据,通过 reference的方式来处理,这样以后可以进行修订,但是这种方式,会有两份数据保存.二:另一种方式是通过URL访问文件,动态数据的读取也可以采用SQLite3的方式. res/raw/下静态文件的读取 在re

Android学习笔记(1)——电话拨号器

搬运自本人博客:Android学习笔记(1)--电话拨号器 程序的实现过程非常简单,大体分为以下几步: 确定程序的功能,大致确定好UI界面. 通过调整xml文件参数让界面更加美观. 在Activity文件编写代码,完成对应的事件等. 对于电话拨号器,我们最后的界面大致如下: 对应的布局文件如下,采用的是相对布局. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <Relative

Android学习笔记二十五之ListView多布局实现

Android学习笔记二十五之ListView多布局实现 这一节是介绍ListView这个控件的最后一节,实现一个Item的多布局.像我们经常在用的各种即时通讯工具,QQ.微信等,假设他们的会话界面是ListView实现的,那么ListView就有多种Item布局,这一节,我们就来实现一个ListView的多种Item. 要实现ListView里面有多种Item,就要重写适配器的两个方法getViewTypeCount()和getItemViewType(int position),第一个方法是

Android学习笔记&#183;从零开始【一】

开始着手Android.和大多数初用Eclipse的人一样,有些手忙脚乱. 之前看Cocos2d时零星的看过:Cocos2d后来也被耽搁下来了:关于Cocos2d点此穿越,日后更新笔记. 现做下Android学习笔记,记录点滴. -->点击进入Android学习笔记导图.         -->19本Android经典教程+104个Github上火爆项目开源源码 加油! ●1 绑定的SDK工具包http://developer.android.com/sdk ●2 Application Na