android 带图片的文本框
基本原理
自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片。
重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移。
废话不多说了,直接代码就明白。
package com.zb; import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.util.AttributeSet;import android.view.View;import android.widget.TextView; public class IconTextView extends TextView { private final String nameSpace="http://com.zb.text"; //保存图像资源ID的变量 private int resourceId=0; private Bitmap bitmap; public IconTextView(Context context, AttributeSet attrs) {super(context, attrs); resourceId=attrs.getAttributeResourceValue(nameSpace, "iconSrc", 0);//获取图像资源的值 if(resourceId!=0) bitmap=BitmapFactory.decodeResource(getResources(), resourceId); } @Overrideprotected void onDraw(Canvas canvas) {if(bitmap!=null){ Rect src=new Rect();//原图区域 Rect target=new Rect();//目标区域 src.left=0; src.top=0; src.right=bitmap.getWidth(); src.bottom=bitmap.getHeight(); int textHeight=(int) getTextSize(); target.left=0; //计算图像复制区域的纵坐标, target.top=(int) (((getMeasuredHeight()-getTextSize())/2)+1); target.bottom=target.top+textHeight; target.right=(int) (textHeight*((float)bitmap.getWidth()/bitmap.getHeight())); //绘制 canvas.drawBitmap(bitmap, src, target, getPaint());//向右移动TextView的的距离 canvas.translate(target.right+2,0); }super.onDraw(canvas); } }
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:zb="http://com.zb.text" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.zb.IconTextViewandroid:id="@+id/iconText1" android:layout_width="fill_parent" android:layout_height="wrap_content" zb:iconSrc="@drawable/small" android:text="妞给爷笑一个" /> <com.zb.IconTextViewandroid:id="@+id/iconText1" android:layout_width="fill_parent" android:layout_height="wrap_content" zb:iconSrc="@drawable/small" android:textSize="30dp" android:text="妞给爷笑一个" /> </LinearLayout>
代码很简单把。
这里需要几个地方,namespace xmlns:zb="http://com.zb.text"要和代码里面定义的一样。
原文:http://blog.csdn.net/hopezhangbo/article/details/7351290#
转载于:https://www.cnblogs.com/shanzei/archive/2012/04/06/2434500.html
android 带图片的文本框相关推荐
- android文本框带图片格式,android 带图片的文本框
基本原理 自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片. 重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移. 废话不多 ...
- C#带按钮的文本框TextBoxContainButton
经常需要用到各种组合控件,每次组合太麻烦,通过打包成自定义控件,方便调用. 带按钮的文本框,如下图: 文本框内可以输入文本,响应文本框内容变化事件,按钮可以设置点击事件,图标 通过3个组合控件实现. ...
- android用java写文本框_Android 自动完成文本框的实例
Android:自动完成文本框 xml文件代码如下: xmlns:android="http://schemas.android.com/apk/res/android" andr ...
- android+点击屏幕隐藏键盘,Android点击EditText文本框之外任何地方隐藏键盘的解决办法...
1,实现方法一: 通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 android:id="@+id/traceroute ...
- 自定义Android带图片的按钮
自定义Android带图片的按钮 前言 现在移动设备的按钮设计讲究大图标小文字,希望用户只要一看到图标便能知道这个按钮是干嘛的,但又要有必要的文字提示,最常见的就数搜索按钮了,上面一个大大的放大镜图标 ...
- java框体怎么添加背景图,文本框添加背景图片,文本框背景图片,public class
文本框添加背景图片,文本框背景图片,public classpublic class WatermarkTextField extends JTextField { BufferedImage img ...
- Android Studio基础输入文本框EditText
Android Studio基础输入文本框EditText 接续上一节<Android Studio 基础按钮使用> 1.提示文本框.输入文本框,在布局xml编写 <EditText ...
- java为文本框添加背景颜色,文本框添加背景图片,文本框背景图片,文本框添加水印[Java...
文本框添加背景图片,文本框背景图片,文本框添加水印[Java 文本框添加水印 [Java]代码public class WatermarkTextField extends JTextField { ...
- html+css 带图片的搜索框
最近写B/S项目比较忙,很久没更新,今天分享一个B/S比较常见的带图片的搜索框代码.希望可以对你们有所帮助. 效果图先展示一下: 图片用的是阿里巴巴矢量图标库的图,需要用到的话,直接拷贝到代码里面就可 ...
最新文章
- 5 年提速 500 倍,英伟达 GPU 创纪录突破与技术有哪些?
- ThreadPoolExecutor使用错误导致死锁
- 2016012101小学四则运算练习软件项目报告
- linux给普通用户分配root权限
- Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server)
- SQL 2005 全文索引
- thinkphp mysql存储过程_MySql存储过程的创建与使用及在thinkphp中如何调用笔记
- HTTP 应用层过滤的兼容性问题及解决方案
- 存不存行李寄存平台_行李寄存柜和行李寄存平台的区别
- 站长之死:互联网界夹心层的梦想反思录
- 总谐波失真计算公式_知识学习:谐波的危害
- 十年PHP架构师的成长之路,程序员必备
- 光电编码器的原理及应用场合_光电编码器原理及应用电路
- Scrapy框架爬取新闻!
- 基于锚点定位和overflow的选项卡
- openGL绘制矩形的顶点定义与矩形绘制
- php语言有哪些特性,盘点PHP编程语言具有的特性
- oppo手机投屏到电脑上
- 宏碁公司再次遭遇入侵,160GB敏感数据泄露
- UI设计师是一群什么样的人?