// Path: app/src/main/java/com/didikee/cnbetareader/utils/MD5.java
// public class MD5 {
//     public static String md5(String content){
//         byte[] result;
//         try {
//             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
//             messageDigest.update(content.getBytes("UTF-8"));
//             result = messageDigest.digest();
//         } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
//             return "";
//         }
//         return byte2Hex(result);
//     }
//     private static String byte2Hex(byte[] bytes) {
//         StringBuilder sb = new StringBuilder();
//         for (byte b: bytes) {
//             String hex = Integer.toHexString(b & 0xFF);
//             if (hex.length() == 1) {
//                 hex = "0" + hex;   // one byte to double-digit hex
//             }
//             sb.append(hex);
//         }
//         return sb.toString();
//     }
// }


import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.text.Editable;
import android.text.Html.TagHandler;
import android.text.Spanned;
import android.text.style.ClickableSpan;
import android.text.style.ImageSpan;
import android.view.View;
import com.didikee.cnbetareader.utils.MD5;
import org.xml.sax.XMLReader;
import java.io.File;
package com.didikee.cnbetareader.test;





public class MyTagHandler implements TagHandler {

	private Context context;
	
	public MyTagHandler(Context context) {
		this.context = context;
	}
	
	@Override
	public void handleTag(boolean opening, String tag, Editable output,
			XMLReader xmlReader) {
		// TODO Auto-generated method stub

		// �����ǩ<img>
		if (tag.toLowerCase().equals("img")) {
			// ��ȡ����
			int len = output.length();
			// ��ȡͼƬ��ַ
			ImageSpan[] images = output.getSpans(len-1, len, ImageSpan.class);
			String imgURL = images[0].getSource();
			
			// ʹͼƬ�ɵ������������¼�
			output.setSpan(new ImageClick(context, imgURL), len-1, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		}
	}
	
	private class ImageClick extends ClickableSpan {

		private String url;
		private Context context;
		
		public ImageClick(Context context, String url) {
			this.context = context;
			this.url = url;
		}
		
		@Override
		public void onClick(View widget) {
			// TODO Auto-generated method stub
			// ��ͼƬURLת��Ϊ����·�������Խ�ͼƬ���������ͼƬ�������дΪһ���������������

// Path: app/src/main/java/com/didikee/cnbetareader/utils/MD5.java
// public class MD5 {
//     public static String md5(String content){
//         byte[] result;
//         try {
//             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
//             messageDigest.update(content.getBytes("UTF-8"));
//             result = messageDigest.digest();
//         } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
//             return "";
//         }
//         return byte2Hex(result);
//     }
//     private static String byte2Hex(byte[] bytes) {
//         StringBuilder sb = new StringBuilder();
//         for (byte b: bytes) {
//             String hex = Integer.toHexString(b & 0xFF);
//             if (hex.length() == 1) {
//                 hex = "0" + hex;   // one byte to double-digit hex
//             }
//             sb.append(hex);
//         }
//         return sb.toString();
//     }
// }


// Path: app/src/main/java/com/didikee/cnbetareader/test/MyTagHandler.java
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.text.Editable;
import android.text.Html.TagHandler;
import android.text.Spanned;
import android.text.style.ClickableSpan;
import android.text.style.ImageSpan;
import android.view.View;
import com.didikee.cnbetareader.utils.MD5;
import org.xml.sax.XMLReader;
import java.io.File;

package com.didikee.cnbetareader.test;





public class MyTagHandler implements TagHandler {

	private Context context;
	
	public MyTagHandler(Context context) {
		this.context = context;
	}
	
	@Override
	public void handleTag(boolean opening, String tag, Editable output,
			XMLReader xmlReader) {
		// TODO Auto-generated method stub

		// �����ǩ<img>
		if (tag.toLowerCase().equals("img")) {
			// ��ȡ����
			int len = output.length();
			// ��ȡͼƬ��ַ
			ImageSpan[] images = output.getSpans(len-1, len, ImageSpan.class);
			String imgURL = images[0].getSource();
			
			// ʹͼƬ�ɵ������������¼�
			output.setSpan(new ImageClick(context, imgURL), len-1, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		}
	}
	
	private class ImageClick extends ClickableSpan {

		private String url;
		private Context context;
		
		public ImageClick(Context context, String url) {
			this.context = context;
			this.url = url;
		}
		
		@Override
		public void onClick(View widget) {
			// TODO Auto-generated method stub
			// ��ͼƬURLת��Ϊ����·�������Խ�ͼƬ���������ͼƬ�������дΪһ���������������

			String imageName = MD5.md5(url);