MainActivity如下:
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; @Override protected 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; } }
main.xml如下:
<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>