package cc.testtipmessage1;import android.os.Bundle;import android.widget.ImageView;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.Typeface;/** * Demo描述: * 仿Iphone通知角標的實現,藉以提示使用者有幾條新的資訊 * * 參考資料: * http://blog.csdn.net/t12x3456/article/details/9337561 * Thank you very much */public class MainActivity extends Activity { private ImageView mImageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();} private void init(){ mImageView=(ImageView) findViewById(R.id.imageView); Bitmap rawBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); Bitmap newBitmap=createNewBitmap(rawBitmap); mImageView.setImageBitmap(newBitmap); } private Bitmap createNewBitmap(Bitmap rawBitmap){ //建立畫布 int width=rawBitmap.getWidth(); int height=rawBitmap.getHeight(); Bitmap newBitmap=Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas=new Canvas(newBitmap); //--->先畫原來的圖片 Paint bitmapPaint=new Paint(); //防止抖動 bitmapPaint.setDither(true); //對Bitmap進行濾波處理 bitmapPaint.setFilterBitmap(true); Rect src=new Rect(0, 0, rawBitmap.getWidth(), rawBitmap.getHeight()); Rect dst=new Rect(0, 0, newBitmap.getWidth(), newBitmap.getHeight()); canvas.drawBitmap(rawBitmap, src, dst, bitmapPaint); //--->再畫新加的數字 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("5", 18, 25, countPaint); return newBitmap; }}
<RelativeLayout 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" > <ImageView android:id="@+id/imageView" android:layout_width="100dip" android:layout_height="100dip" android:layout_centerInParent="true" /></RelativeLayout>