当前位置:操作系统 > 安卓/Android >>

Android仿Iphone通知角标的实现(二)

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;
    }
}
<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>

 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,