Android 实现带角标的ImageView(微博,QQ消息提示)

角标绘制过程:用画笔量出一个字符的宽度作为角标背景的半径(R),然后判断传入字符串的总长度

如果只有一位字符:那么就以 R 为半径,画一个圆,然后在圆中写上数字

如果有两位以上的字符,就不能单纯用一个圆了,用画笔测量字符串的完整长度( len ),然后在右上角画一个圆,在这个圆的圆心左边 len 长度的位置 作为圆心再画一个圆,最后以这个两个圆的上下顶点(一共四个)构成一个矩形,进行填充

源码地址:https://github.com/SiKang123/AndroidToolBox

效果如下:

集成方法

在Project的 build.gradle 下添加

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

在Module的 build.gradle 下添加

dependencies {
    compile 'com.github.SiKang123:AndroidToolBox:1.0'
}

使用方法

图片中的效果,Layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center_horizontal"
  android:orientation="vertical"
  android:paddingTop="50dp">

  <android.simple.toolbox.widget.CornerImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_margin="20dp"
    android:src="@mipmap/ic_launcher"
    app:cornerBackground="@color/red"
    app:cornerText="9"
    app:cornerTextColor="@color/white"
    app:cornerTextSize="11dp" />

  <android.simple.toolbox.widget.CornerImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_margin="20dp"
    android:src="@mipmap/ic_launcher"
    app:cornerBackground="@color/red"
    app:cornerText="99"
    app:cornerTextColor="@color/white"
    app:cornerTextSize="11dp" />

  <android.simple.toolbox.widget.CornerImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_margin="20dp"
    android:src="@mipmap/ic_launcher"
    app:cornerBackground="@color/red"
    app:cornerText="999"
    app:cornerTextColor="@color/white"
    app:cornerTextSize="11dp" />

  <android.simple.toolbox.widget.CornerImageView
    android:id="@+id/progress_imageview"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_margin="20dp"
    android:src="@mipmap/ic_launcher"
    app:cornerBackground="@mipmap/shanchu"
    app:cornerLoadColor="@color/alpha_black_35"
    app:cornerRadius="7dp" />
</LinearLayout>

Activtiy:

@Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cornerimage);
    //设置最后一个图片的加载进度为20%,并添加点击事件
    CornerImageView imageView = (CornerImageView) findViewById(R.id.progress_imageview);
    imageView.progress(20);
    imageView.setOnCornerClickListener(new CornerImageView.OnCornerClickListener() {
      @Override
      public void onCornerClickListener(View view) {
        Toast.makeText(SimpleCornerImageActivity.this, "角标被点击", Toast.LENGTH_SHORT).show();
      }
    });
  }

以上这篇Android 实现带角标的ImageView(微博,QQ消息提示)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • android ImageView 的几点经验总结
  • Android控件系列之ImageView使用方法
  • Android自定义AvatarImageView实现头像显示效果
(0)

相关推荐

  • Android自定义AvatarImageView实现头像显示效果

    看看效果图: 我们项目中头像显示一般都是圆形的,但是有时候不排除各种样式(不一定是个规则的形状),比如 上次UI给了我一个 圆形下面少了一块.我们一般实现自定义形状的图形有三种方式:PorterDuffXfermode .BitmapShader.ClipPath.下面我都会分别说明,我这里实现使用的第一种方式(实现还是比较简单的). 1.PorterDuffXfermode 这是由Tomas Proter和 Tom Duff命名的图像转换模式,它有16个枚举值来控制Canvas上 上下两个图层

  • Android控件系列之ImageView使用方法

    学习目的: 1.掌握在Android中如何插入图片 图片的加入可以立刻让您的程序增色不少,我们样例选用一张Android机器人(picture.jpg),您可以使用自己的任何图片进行试验 一般建议您程序中的图片加入资源,而不是放在SD卡中用流的方式去读取,毕竟嵌入的资源比较安全,不容易被篡改. 1.导入图片到资源 将图片拖拽到项目res\drawable开头的3个文件夹下,他们分别代表了高.中.低分辨度的图片.Android读取图片时自动优化,选用合适的一个图片显示,比如高分辨率可以存放128*

  • android ImageView 的几点经验总结

    最近作图片的显示,遇到了些问题,简单总结1)可以用ImageSwicher和ImageView结合在来做,这样会用到setFectory(),华而不实最要命的是如果图片的大小超过屏幕,实现比较困难,目前是没有找到方法 2)最简单的方法是用ImageView,图片直接FIT_CENTER,android会根据图片的大小自动调节保持图片的比例.如果图片分辨率超过屏幕,android也会自动的调整到屏幕能放下整张的图片在放大图片的时候,可以用ImageView的SetFrame() 和setScale

  • Android 实现带角标的ImageView(微博,QQ消息提示)

    角标绘制过程:用画笔量出一个字符的宽度作为角标背景的半径(R),然后判断传入字符串的总长度 如果只有一位字符:那么就以 R 为半径,画一个圆,然后在圆中写上数字 如果有两位以上的字符,就不能单纯用一个圆了,用画笔测量字符串的完整长度( len ),然后在右上角画一个圆,在这个圆的圆心左边 len 长度的位置 作为圆心再画一个圆,最后以这个两个圆的上下顶点(一共四个)构成一个矩形,进行填充 源码地址:https://github.com/SiKang123/AndroidToolBox 效果如下:

  • Android自定义带增长动画和点击弹窗提示效果的柱状图DEMO

    项目中最近用到各种图表,本来打算用第三方的,例如MPAndroid,这是一个十分强大的图表库,应用起来十分方便,但是最终发现和设计不太一样,没办法,只能自己写了.今天将写好的柱状图的demo贴在这,该柱状图可根据数据的功能有一下几点: 1. 根据数据的多少,动态的绘制柱状图柱子的条数: 2. 柱状图每条柱子的绘制都有动态的动画效果: 3. 每条柱子有点击事件,点击时弹出提示框,显示相关信息,规定时间后,弹窗自动消失. 好了,先上演示图: 下边贴出相关代码: 自定义柱状图类: package co

  • Android仿QQ消息提示实现弹出式对话框

    本文在<7种形式的Android Dialog使用实例>在这篇文章的基础进行学习,具体内容如下 1.概述 android原生控件向来以丑著称(新推出的Material Design当另说),因此几乎所有的应用都会特殊定制自己的UI样式.而其中弹出式提示框的定制尤为常见,本篇我们将从模仿QQ退出提示框来看一下常见的几种自定义提示框的实现方式. 这里使用的几种弹出框实现方法概括为以下几种: 自定义Dialog 自定义PopupWindow 自定义Layout View Activity的Dialo

  • Android自定义带圆角的ImageView

    最近有一个实现一个带有圆角的ImageView的需求,在网上找了找三方,虽然Demo都是正确的,但是移植过来就不可以了,因为请求链接的时候用的是xUtils中Bitmap来进行解析的,这样就总是会报类型转换异常的错误. 就这样只能自己定义一个了. Demo: package com.yizooo.yizooo.ui; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bi

  • Android仿QQ消息提示点拖拽功能

    很久以前,发现QQ有一个很有趣的功能,就是未读消息的红点是可以拖拽的,而且在任何地方都可以随意拖拽,并且有一个弹性的动画,非常有趣,而且也是一个非常方便的功能,于是总想仿制一个,虽说仿制,但也只是他的拖拽功能,弹性效果还是能力有限. 不多说 先上效果 一个自定义的view 使用方式也很简单 <com.weizhenbin.show.widget.VanishView android:layout_width="30dp" android:layout_height="3

  • Android为应用添加数字角标的简单实现

    角标,英语是badge,也就是"徽章,像章,奖章: 象征,标记"的意思. 效果图 可以看到图中的环信单聊这个app右上角的红色的圆圈,里面有6这个数字的,就是一种角标. 一般来说,应用的角标是用来标记有多少条提醒(Notification)没读(unread),一旦点击提示进应用阅读了,角标也会消失. 一些必要的说明 角标原本是苹果的iOS中的东西,Android原生并不支持角标,因为Google的意思是让大家用Notification(提示栏)即可,不过无妨,厉害的Android第

  • Android仿qq消息拖拽效果

    本文实例为大家分享了Android仿qq消息拖拽效果展示的具体代码,供大家参考,具体内容如下 这是一个仿qq消息拖拽效果,View和拖拽实现了分离,TextView.Button.Imageview等都可以实现相应的拖拽效果:在触发的地方调用 MessageBubbleView.attach(findViewById(R.id.text_view), new MessageBubbleView.BubbleDisappearListener() { @Override public void d

  • Android自定义带水滴的进度条样式(带渐变色效果)

    一.直接看效果 二.直接上代码 1.自定义控件部分 package com.susan.project.myapplication; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.grap

  • Android实现带磁性的悬浮窗体效果

    本文实例讲述了Android实现带磁性的悬浮窗体效果.分享给大家供大家参考,具体如下: 带磁性的悬浮窗体,类似于360绿色小人 主要实现的是: 1.悬浮所有窗体之上 2.有吸引力,吸附于屏幕边上 3.有点击效果 下面我就实现上面三点,简单封装了个FloatView 先看下本次Demo的效果图,然后再看代码, 效果图: FloatView代码如下 package com.manymore13.flowwindowdemo; import android.content.Context; impor

  • Android实现带动画效果的可点击展开TextView

    本文为大家分享了Android实现带动画效果的可点击展开TextView 制作代码,效果图: 收起(默认)效果: 点击展开后的效果: 源码: 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/activity_main" xmlns:android="http://schemas.android.com/apk/res/a

随机推荐