Project: MyHeath-Android
package com.buaa.shortytall.view.fragment;
 
import java.util.ArrayList; 
 
import android.content.Context; 
import android.content.Intent; 
import android.os.Handler; 
import android.os.Message; 
import android.view.LayoutInflater; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.View.OnTouchListener; 
import android.widget.FrameLayout; 
import android.widget.FrameLayout.LayoutParams; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
import android.widget.Toast; 
 
import com.actionbarsherlock.app.SherlockFragmentActivity; 
import com.actionbarsherlock.app.ActionBar.Tab; 
import com.buaa.shortytall.MyHealth; 
import com.buaa.shortytall.R; 
import com.buaa.shortytall.activity.DiseaseListActivity; 
 
public class CheckFragment extends New_BaseFragment implements OnTouchListener{ 
 
     
    public CheckFragment(Handler handler, Context context) { 
        super(handler, context); 
    } 
 
    private ImageView mHumanView; 
    private LayoutInflater mInflater; 
    private RelativeLayout mBaseView; 
     
    @Override 
    protected Tab initTab() { 
        Tab tab = ((SherlockFragmentActivity)context).getSupportActionBar() 
                .newTab(); 
        tab.setText("健康自测"); 
        tab.setIcon(context.getResources().getDrawable(R.drawable.check)); 
        return tab; 
    } 
 
     
     
    @Override 
    public void handleMessage(Message message) { 
        // TODO Auto-generated method stub 
 
    } 
 
    @Override 
    public int getAsyncInitViewResId() { 
        return R.layout.check; 
    } 
 
    @Override 
    protected void onInflated() { 
        mHumanView = (ImageView)contentView.findViewById(R.id.human_page); 
        mInflater = LayoutInflater.from(context); 
        mBaseView = (RelativeLayout)contentView; 
         
        loadData(); 
    } 
 
    private void popOut(final LocationData data){ 
        View mOverlay = mInflater.inflate(R.layout.overlay_pop, null); 
        TextView title = (TextView)mOverlay.findViewById(R.id.overlay_title); 
        TextView description = (TextView)mOverlay.findViewById(R.id.overlay_description); 
        title.setText(data.title); 
        description.setText(data.content); 
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT); 
         
        mOverlay.setOnClickListener(new OnClickListener() { 
             
            @Override 
            public void onClick(View v) { 
                Intent intent = new Intent(context, DiseaseListActivity.class); 
                intent.putExtra(MyHealth.Bundle_keys.DISEASE_TYPE, data.type); 
                startActivity(intent); 
            } 
        }); 
         
        params.alignWithParent = true
        params.leftMargin = data.x; 
        params.topMargin = data.y; 
        mBaseView.addView(mOverlay,params); 
    } 
     
    private void loadData(){ 
        ArrayList<LocationData> datas = new ArrayList<LocationData>(); 
        datas.add(new LocationData(82,297,MyHealth.Body_Area.UPPER_LIMB,"上肢部位","手掌,手腕等")); 
        datas.add(new LocationData(150,100,MyHealth.Body_Area.BREAST,"胸部区域 ","肺部,胸腔等")); 
        datas.add(new LocationData(128,8,MyHealth.Body_Area.HEAD,"头部","口,耳,鼻,眼等")); 
        //datas.add(new LocationData(239,63,MyHealth.Body_Area.NECK,"肩部","肩,颈部?")); 
        datas.add(new LocationData(213,383,MyHealth.Body_Area.LOWER_LIMB,"下肢","膝盖,大腿等")); 
        datas.add(new LocationData(161,177,MyHealth.Body_Area.BELLY,"腹部","胃,肠等")); 
        //datas.add(new LocationData(195,256,MyHealth.Body_Area.REPRODUCTIVE,"生殖部位","生殖器官?")); 
         
        for(LocationData item : datas){ 
            popOut(item); 
        } 
    } 
     
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
//        int events = event.getAction(); 
//        switch(events){ 
//        case MotionEvent.ACTION_DOWN: 
//            if (mOverlay != null){ 
//                mBaseView.removeView(mOverlay); 
//            } 
//            int lastX = (int)event.getX(); 
//            int lastY = (int)event.getY(); 
//            popOut(lastX,lastY); 
//        } 
        return false
    } 
     
    private class LocationData
        public LocationData(int x, int y,int type, String title, String content) { 
            this.x = x; 
            this.y = y; 
            this.type = type; 
            this.title = title; 
            this.content = content; 
        } 
        int x; 
        int y; 
        int type; 
        String title; 
        String content; 
         
    } 
 
}