导航栏图标上添加 提醒

来源:互联网 发布:软件体验报告 编辑:程序博客网 时间:2024/04/26 15:57
public class MainActivity extends Activity {


private ImageView iv;
private ImageView iv2;
private ImageView iv3;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
iv2 = (ImageView) findViewById(R.id.iv2);
iv3 = (ImageView) findViewById(R.id.iv3);

Bitmap b1 = getResIcon(getResources(), R.drawable.app_logo);
Bitmap b2 = generatorContactCountIcon(b1,5);
iv.setBackgroundDrawable(new BitmapDrawable(b2));


BadgeView badgeView = new BadgeView(MainActivity.this, iv2);
badgeView.setText("27");
badgeView.setTextSize(20.5f);
badgeView.setTextColor(Color.DKGRAY);
badgeView.show();



BadgeView badgeView2 = new BadgeView(MainActivity.this, iv3);
badgeView2.setBackgroundResource(R.drawable.noread);
badgeView2.show();


}


/**
* 鑾峰彇Icon瀵瑰簲鐨刡itmap
* @param res
* @param resId
* @return
*/
private Bitmap getResIcon(Resources res, int resId) {
Drawable icon = res.getDrawable(resId);
if (icon instanceof BitmapDrawable) {
BitmapDrawable bd = (BitmapDrawable) icon;
return bd.getBitmap();
} else {
return null;
}
}


/**
* 鍦ㄧ粰瀹氱殑鍥剧墖鐨勫彸涓婅鍔犱笂绾㈣壊鎻愰啋鏁伴噺

* @param icon
*            缁欏畾鐨勫浘鐗�
* @return 甯﹁仈绯讳汉鏁伴噺鐨勫浘鐗�
*/
private Bitmap generatorContactCountIcon(Bitmap icon,int count) {
// 鍒濆鍖栫敾甯�
int iconSize = (int) getResources().getDimension(
android.R.dimen.app_icon_size);
Bitmap contactIcon = Bitmap.createBitmap(iconSize, iconSize,
Config.ARGB_8888);
Canvas canvas = new Canvas(contactIcon);


// 鎷疯礉鍥剧墖
Paint iconPaint = new Paint();
iconPaint.setDither(true);// 闃叉姈鍔�
iconPaint.setFilterBitmap(true);// 鐢ㄦ潵瀵笲itmap杩涜婊ゆ尝澶勭悊锛岃繖鏍凤紝褰撲綘閫夋嫨Drawable鏃讹紝浼氭湁鎶楅敮榻跨殑鏁堟灉
Rect src = new Rect(0, 0, icon.getWidth(), icon.getHeight());
Rect dst = new Rect(0, 0, iconSize, iconSize);
canvas.drawBitmap(icon, src, dst, iconPaint);


// 鍚敤鎶楅敮榻垮拰浣跨敤璁惧鐨勬枃鏈瓧璺�
Paint countPaint = new Paint(Paint.ANTI_ALIAS_FLAG
| Paint.DEV_KERN_TEXT_FLAG);
countPaint.setColor(Color.RED);
countPaint.setTextSize(20f);
countPaint.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText(String.valueOf(count), iconSize - 18, 25, countPaint);
return contactIcon;
}





}



xml  文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <ImageView
        android:id="@+id/iv"
        android:layout_width="80dp"
        android:layout_height="100dp"
        android:scaleType="fitXY" />


    <ImageView
        android:id="@+id/iv2"
        android:layout_width="80dp"
        android:layout_height="100dp"
        android:layout_marginTop="30dp"
        android:scaleType="fitXY"
        android:src="@drawable/app_logo" />


    <ImageView
        android:layout_marginTop="30dp"
        android:id="@+id/iv3"
        android:layout_width="80dp"
        android:layout_height="100dp"
        android:scaleType="fitXY"
        android:src="@drawable/app_logo" />


</LinearLayout>

0 0