package com.quark.us; import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.PopupWindow; import android.widget.TextView; import com.android.volley.AuthFailureError; import com.android.volley.DefaultRetryPolicy; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.carson.constant.ConstantForSaveList; import com.qingmu.jianzhidaren.R; import com.quark.common.JsonUtil; import com.quark.common.Url; import com.parttime.main.MainTabActivity; import com.quark.model.MyResume; import com.quark.senab.us.image.HackyViewPager; import com.quark.senab.us.image.ImageDetailFragment; import com.quark.volley.VolleySington; public class ImagePopupWindow extends PopupWindow { private Button btn_cancel; private View mMenuView; // //////读取图片参数、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 int totalPic = 0; MyResume re = new MyResume(); String url1 = ""; String url2 = ""; String url3 = ""; String url4 = ""; String url5 = ""; String url6 = ""; String[] imagesUrls = new String[] { "", "", "", "", "", "" }; protected RequestQueue queue; private int pagerPosition, position; private String user_id; private HackyViewPager mPager; private TextView indicator; private Context context; public ImagePopupWindow(Activity context, String[] urls, int position, String userId) { super(context); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mMenuView = inflater.inflate(R.layout.image_detail_pager, null); queue = VolleySington.getInstance().getRequestQueue(); user_id = userId; this.position = position; this.context = context; getData(); // ////////弹窗必须///////////////////////////////////////////////// /* * btn_cancel = (Button) mMenuView.findViewById(R.id.btn_cancel); // * 取消按钮 btn_cancel.setOnClickListener(new OnClickListener() { * * public void onClick(View v) { // 销毁弹出框 dismiss(); } }); */ // 设置SelectPicPopupWindow的View this.setContentView(mMenuView); // 设置SelectPicPopupWindow弹出窗体的宽 this.setWidth(LayoutParams.FILL_PARENT); // 设置SelectPicPopupWindow弹出窗体的高 this.setHeight(LayoutParams.WRAP_CONTENT); // 设置SelectPicPopupWindow弹出窗体可点击 this.setFocusable(true); // 设置SelectPicPopupWindow弹出窗体动画效果 this.setAnimationStyle(R.style.AnimBottom); // 实例化一个ColorDrawable颜色为半透明 ColorDrawable dw = new ColorDrawable(0xb0000000); // 设置SelectPicPopupWindow弹出窗体的背景 this.setBackgroundDrawable(dw); // mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框 mMenuView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { int height = mMenuView.findViewById(R.id.pop_layout).getTop(); int y = (int) event.getY(); if (event.getAction() == MotionEvent.ACTION_UP) { if (y < height) { dismiss(); } } return true; } }); } // ////////弹窗必须///////////////////////////////////////////////// int currentPage; private void getData() { totalPic = 0; // 每次更新图片后重新获取一次图片url // showWait(true); StringRequest request = new StringRequest(Request.Method.POST, Url.USER_jianli_show + "?token=" + MainTabActivity.token, new Response.Listener<String>() { @Override public void onResponse(String response) { // showWait(false); Log.e("mytag", "获得的json:" + response); try { JSONObject js = new JSONObject(response); JSONObject statusjs = js .getJSONObject("ResponseStatus"); int status = statusjs.getInt("status"); if (status == 2) { JSONObject myResumeJson = js .getJSONObject("MyResumeResponse"); re = (MyResume) JsonUtil.jsonToBean( myResumeJson, MyResume.class); Log.e("mytag", "获得的bean:" + re.toString()); if (re.getPicture_1() != null) { url1 = Url.GETPIC + re.getPicture_1(); imagesUrls[0] = url1; totalPic++; } if (re.getPicture_2() != null) { url2 = Url.GETPIC + re.getPicture_2(); imagesUrls[1] = url2; totalPic++; } if (re.getPicture_3() != null) { url3 = Url.GETPIC + re.getPicture_3(); imagesUrls[2] = url3; totalPic++; } if (re.getPicture_4() != null) { url4 = Url.GETPIC + re.getPicture_4(); imagesUrls[3] = url4; totalPic++; } if (re.getPicture_5() != null) { url5 = Url.GETPIC + re.getPicture_5(); imagesUrls[4] = url5; totalPic++; } if (re.getPicture_6() != null) { url6 = Url.GETPIC + re.getPicture_6(); imagesUrls[5] = url6; totalPic++; } deal(); } else { // Toast.makeText(ImagePagerActivity.this, // "获取图片失败!",Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { // showWait(false); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("user_id", user_id); return map; } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy(ConstantForSaveList.DEFAULTRETRYTIME*1000, 1, 1.0f)); } public void deal() { pagerPosition = position; mPager = (HackyViewPager) mMenuView.findViewById(R.id.pager); // ImagePagerAdapter mAdapter = new // ImagePagerAdapter(getSupportFragmentManager(), imagesUrls); // mPager.setAdapter(mAdapter); indicator = (TextView) mMenuView.findViewById(R.id.indicator); CharSequence text = context.getString(R.string.viewpager_indicator, 1, mPager.getAdapter().getCount()); indicator.setText(text); // 更新下标 mPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { CharSequence text = context.getString( R.string.viewpager_indicator, arg0 + 1, mPager .getAdapter().getCount()); indicator.setText(text); currentPage = arg0; Log.e("erros", "当前页=" + arg0); } }); /* * if (savedInstanceStateTemp != null) { pagerPosition = * contextsavedInstanceStateTemp.getInt(STATE_POSITION); } */ mPager.setCurrentItem(pagerPosition); } private class ImagePagerAdapter extends FragmentStatePagerAdapter { public String[] fileList; public ImagePagerAdapter(FragmentManager fm, String[] fileList) { super(fm); this.fileList = fileList; } @Override public int getCount() { return fileList == null ? 0 : fileList.length; } @Override public Fragment getItem(int position) { String url = fileList[position]; return ImageDetailFragment.newInstance(url); } } }