package net.coding.program.common; import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Html; import android.util.Log; import net.coding.program.R; import net.coding.program.common.enter.DrawableTool; import java.lang.reflect.Field; /** * Created by chaochen on 14-9-15. */ public class MyImageGetter implements Html.ImageGetter { private Context mActivity; public MyImageGetter(Context activity) { mActivity = activity; } static public int getResourceId(String s) { String name = s.replace('-', '_'); if (name.equals("e_mail")) { name = "e_mail"; } else if (name.equals("non_potable_water")) { name = "non_potable_water"; } else if (name.equals("+1")) { name = "a00001"; } else if (name.equals("_1")) { name = "a00002"; } else if (name.equals("new")) { name = "my_new_1"; } else if (name.equals("8ball")) { name = "my8ball"; } else if (name.equals("100")) { name = "my100"; } else if (name.equals("1234")) { name = "my1234"; } try { Field field = R.drawable.class.getField(name); return Integer.parseInt(field.get(null).toString()); } catch (Exception e) { Global.errorLog(e); } return R.drawable.app_icon; } @Override public Drawable getDrawable(String source) { Log.d("", "text drawable " + source); String name = getPhotoName(source); int id = getResourceId(name); Drawable drawable; drawable = mActivity.getResources().getDrawable(id); DrawableTool.zoomDrwable(drawable, isMonkey(name)); return drawable; } private String getPhotoName(String s) { try { if (s == null) { return ""; } int begin = s.lastIndexOf('/'); if (begin == -1) { return s; } ++begin; int end = s.lastIndexOf('.'); if (end == -1) { return s; } return s.substring(begin, end); } catch (Exception e) { return ""; } } private boolean isMonkey(String name) { return name.indexOf("coding") == 0 || name.indexOf("festival") == 0; } }