Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android仿Iphone通知角標的實現(二)

Android仿Iphone通知角標的實現(二)

編輯:關於Android編程

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>

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved