LinkTextView類的定義:

[java]code

 

package com.example.njupt.zhb.linktext;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.net.Uri;
import android.view.View;
import android.view.View.OnClickListener;
import android.util.AttributeSet;
/*
 *@author: ZhengHaibo  
 *web:     blog.csdn.net/nuptboyzhb
 *mail:    zhb931706659@126.com
 *2012-8-31  Nanjing njupt
 */
public class LinkTextView extends View implements OnClickListener{
    String UrlText;
    Activity ParentActivity;
    Paint paint=new Paint();
    int color=Color.RED;
	public LinkTextView(Context context) {
		super(context);
		setClickable(true);
		this.setOnClickListener(this);
		// TODO Auto-generated constructor stub
	}
	public LinkTextView(Context context,AttributeSet attrs){
		super(context,attrs);
		setClickable(true);
		this.setOnClickListener(this);
	}
	//@SuppressLint("DrawAllocation")
	@Override
	protected void onDraw(Canvas canvas){
		super.onDraw(canvas);
		paint.setAntiAlias(true);
		paint.setStrokeWidth(1);
		paint.setColor(color);
		//canvas.drawLine(left, bottom, left+100, bottom, paint);
		int width=getWidth();
		int height=getHeight();
		int textwidth=getTextWidth();
		int x_pos=(int)((width-textwidth)/2);
		height=(int)(height*0.67);
		canvas.drawText(UrlText, x_pos, height, paint);
		paint.setStrokeWidth(1);
		paint.setColor(Color.BLUE);
		canvas.drawLine(x_pos, height, textwidth+x_pos, height, paint);
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		Uri uri = Uri.parse(UrlText);
		Intent it = new Intent(Intent.ACTION_VIEW,uri);
		ParentActivity.startActivity(it);
		color=Color.BLACK;
		this.invalidate();
	}
	public void setUrl(Activity ParentActivity,String text){
		UrlText=text;
		this.ParentActivity=ParentActivity;
	}
	private int getTextWidth(){
		int len=UrlText.length();
		return len*6;
	}
	

}

 

LinkTextView的簡單說明:

1.onDraw函數主要是將設置的字符串畫出來,並且在字符串下面畫一個下劃線,看起來像一個鏈接

2.實現了OnClickListener接口,當用戶點擊鏈接時,通過启動一個Intent,在系統的瀏覽器中打開該鏈接。

LinkTextView的使用:

1.      布局文件:

 

    <com.example.njupt.zhb.linktext.LinkTextView
        android:id="@+id/linktext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

 

2.      MainActivity定義一個LinkTextView類的對象,並與布局文件相關聯。

LinkTextView m_LinkTextView;
m_LinkTextView=(LinkTextView)findViewById(R.id.linktext);


 3.      設置Url

 m_LinkTextView.setUrl(this,"http://blog.csdn.net/nuptboyzhb/");

4.      Manifest.xml上網權限

 

<uses-permission android:name="android.permission.INTERNET"></uses-permission>


 

項目下載地址:http://download.csdn.net/detail/nuptboyzhb/4540110

轉載請聲明:http://blog.csdn.net/nuptboyzhb/article/details/7930620

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()