`
孤冰独狼
  • 浏览: 12719 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android ImageView画图添加数字显示

 
阅读更多

public class ImageNumberView extends ImageView
{
 public String number;
 private PaintFlagsDrawFilter pfd;
 Resources res = getResources();

 public ImageNumberView(Context context)
 {
  super(context);
 }

 public ImageNumberView(Context context, AttributeSet set)
 {

  super(context, set);
 }

 // 画图类
// public void onDraw(Canvas canvas)
// {
//
//  super.onDraw(canvas);
//  Paint mPaint = new Paint();
//  pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
//  canvas.setDrawFilter(pfd);
//
//  String familyName = "Arial Rounded MT Bold";
//  Typeface font = Typeface.create(familyName, Typeface.BOLD);
//  mPaint.setColor(Color.BLACK);
//  mPaint.setTypeface(font);
//  mPaint.setTextSize(20);
//  if (number != null && !number.equals("0"))
//  {
//   if (number != null && number.length() == 1)
//   {
//    Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.num_bg3);
//    
//    canvas.drawBitmap(bmp, this.getWidth()-bmp.getWidth(), this.getHeight()-bmp.getHeight(), mPaint);
//    canvas.drawText(number, this.getWidth()-bmp.getWidth()/2-5, this.getHeight()-bmp.getHeight()/2+6, mPaint);
//   } else if (number != null && number.length() == 2)
//   {
//    Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.num_bg2);
//    canvas.drawBitmap(bmp, 17, 12, mPaint);
//    canvas.drawText(number, 24, 21, mPaint);
//   } else if (number != null && number.length() == 3)
//   {
//    Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.num_bg3);
//    canvas.drawBitmap(bmp, 12, 12, mPaint);
//    canvas.drawText(number, 19, 21, mPaint);
//   }
//  }
//
// }

 

    /**
     * 在给定的图片的右上角加上联系人数量。数量用红色表示
     * @param icon 给定的图片
     * @return 带联系人数量的图片
     */ 
    public Bitmap generatorContactCountIcon(Bitmap icon,int number){ 
        //初始化画布 
//        int iconSize=(int)getResources().getDimension(android.R.dimen.app_icon_size);
//        Log.d(TAG, "the icon size is "+iconSize);
       
//         Bitmap contactIcon=Bitmap.createBitmap(this.getWidth(), this.getHeight(), Config.ARGB_8888); 
       Bitmap contactIcon=Bitmap.createBitmap(icon.getWidth(), icon.getHeight(), Config.ARGB_8888); 
       Canvas canvas=new Canvas(contactIcon); 
        
       //拷贝图片 
       Paint iconPaint=new Paint(); 
       iconPaint.setDither(true);//防抖动 
       iconPaint.setFilterBitmap(true);//用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果 
       Rect src=new Rect(0, 0, icon.getWidth(), icon.getHeight()); 
       Rect dst=new Rect(0, 0, icon.getWidth(), icon.getHeight()); 
       canvas.drawBitmap(icon, src, dst, iconPaint); 
        
       //在图片上创建一个覆盖的联系人个数 
       int contacyCount=number; 
       Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.num_bg3);
       //启用抗锯齿和使用设备的文本字距 
       Paint countPaint=new Paint(Paint.ANTI_ALIAS_FLAG|Paint.DEV_KERN_TEXT_FLAG); 
//       countPaint.setColor(Color.parseColor("#f63003"));
       countPaint.setColor(Color.WHITE);
       countPaint.setTextSize(35); 
       countPaint.setTypeface(Typeface.DEFAULT_BOLD);
       countPaint.setAntiAlias(true);
//       countPaint.setShadowLayer (5, 3, 3, 0xFF000000);//加阴影

       canvas.drawBitmap(bmp, 135, 1, countPaint);
       canvas.drawText(String.valueOf(contacyCount), 143, 35, countPaint); 
       return contactIcon; 
   } 
 
 
 
 public String getNumber()
 {
  return number;
 }

 public void setNumber(String number)
 {
  this.number = number;
 }

}

分享到:
评论

相关推荐

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全的目录

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示...

    Google Android SDK 开发范例大全01

    4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——...

    Google Android SDK 开发范例大全02

    4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——...

    Google+Android+SDK开发范例大全

    4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——...

    Google Android sdk 开发范例大全 部分章节代码

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全(完整版)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

Global site tag (gtag.js) - Google Analytics