您现在的位置是:群英 > 开发技术 > 移动开发
Android怎么实现图标上的数字效果
Admin发表于 2022-05-16 17:16:44761 次浏览
这篇文章给大家分享的是“Android怎么实现图标上的数字效果”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“Android怎么实现图标上的数字效果”吧。

本文实例为大家分享了android实现在图标上显示数字的具体代码,供大家参考,具体内容如下

效果图:

动态显示当天的号数。

主要代码如下:

import android.content.context;
import android.graphics.bitmap;
import android.graphics.bitmap.config;
import android.graphics.canvas;
import android.graphics.paint;
import android.graphics.rect;
import android.graphics.typeface;
import android.graphics.drawable.bitmapdrawable;
 
/**
 * 图片上画文字
 * 
 * @author qhg
 * @date 2014年3月5日
 * 
 */
 
public class qnotifacationicon {
    /**
     * 在给定的图片上添加文字
     * 
     * @param context
     *            上下文对象
     * @param resid
     *            图片资源id
     * @param text
     *            需要显示的文字
     * @param textsize
     *            文字大小
     * @param color
     *            文字颜色
     * @param typeface
     *            文字字体
     * @param offsetx
     *            文字x的偏移量
     * @param offsety
     *            文字y的偏移量
     * @return 带文字的图片
     */
    public static bitmap generatorcontacticon(context context, int resid,
            string text, float textsize, int color, typeface typeface,
            float offsetx, float offsety) {
        // 根据id获取需要处理的图片
        bitmap icon = ((bitmapdrawable) (context.getresources()
                .getdrawable(resid))).getbitmap();
        int iconwidth = icon.getwidth();
        int iconheight = icon.getheight();
        // 初始化画布
        bitmap contacticon = bitmap.createbitmap(iconwidth, iconheight,
                config.argb_8888);
        // 构建
        canvas canvas = new canvas(contacticon);
 
        // 创建画笔
        paint paint = new paint();
        // 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰
        paint.setdither(true);
        // 如果该项设置为true,则图像在动画进行中会滤掉对bitmap图像的优化操作,加快显示
        // 速度,本设置项依赖于dither和xfermode的设置
        paint.setfilterbitmap(true);
 
        // 截取整个图片,从左上角到右下角
        rect src = new rect(0, 0, iconwidth, iconheight);
        // 截取的图片放在画布上的位置
        rect dst = new rect(0, 0, iconwidth, iconheight);
        canvas.drawbitmap(icon, src, dst, paint);
 
        // 抗锯齿和使用本身的文本字距
        paint numpaint = new paint(paint.anti_alias_flag
                | paint.dev_kern_text_flag);
        // 设置文字颜色
        numpaint.setcolor(color);
        // 设置文字大小
        numpaint.settextsize(textsize);
        // 设置文字字体
        numpaint.settypeface(typeface);
 
        // 将文字内容画在图片上,x和y的坐标这里直接计算了文字在图片上的宽高偏移比例
        canvas.drawtext(text, iconwidth * offsetx, iconheight * offsety,
                numpaint);
        return contacticon;
    }
}

数字字体大小会随屏幕大小而不适应,可以根据屏幕宽度然后动态缩放字体比例。
调用方式:

// 动态在图片上画日期数字
((imageview) convertview.findviewbyid(r.id.iv_leftimage))
    .setimagebitmap(qnotifacationicon.generatorcontacticon(
    context, list_left_iamge_array[position],
    string.valueof(new date().getdate()), 30f, color.gray,
    typeface.default_bold, 0.35f, 0.75f));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。


关于“Android怎么实现图标上的数字效果”的内容就介绍到这,感谢各位的阅读,相信大家对Android怎么实现图标上的数字效果已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-06-16 09:25:24 
摘要:5种方法:1、用“array_pop($arr)”语句,删除最后一个元素并返回该值;2、用“end($arr)”,返回最后一个元素的值;3、用“array_slice($arr,-1)”;4、用“$arr[count($arr)-1]”等。
2022-05-09 17:57:24 
摘要:在php中,可使用strip_tags()函数来去掉html标签,语法为“strip_tags(string,allow)”;该函数用于剥去字符串中的HTM、PHP等标签,参数“allow”用于指定需要保留的标签,如果省略则会删除全部标签。
2022-06-08 17:34:07 
摘要:下面由golang教程栏目给大家介绍 Go 并发编程之 Mutex,希望对需要的朋友有所帮助!我们比较常见的大型项目的设计中都会出现并发访问问题,并发就是为了解决数据的准确性...
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部