//子条目监听中
xLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final List<String> list = new ArrayList<>();
String thumbnail_pic_s = results.get(position - 1).getThumbnail_pic_s();
//优化 判空
if(!TextUtils.isEmpty(thumbnail_pic_s)){
list.add(thumbnail_pic_s);
}
String thumbnail_pic_s02 = results.get(position - 1).getThumbnail_pic_s02();
if(!TextUtils.isEmpty(thumbnail_pic_s02)){
list.add(thumbnail_pic_s02);
}
String thumbnail_pic_s03 = results.get(position - 1).getThumbnail_pic_s03();
if(!TextUtils.isEmpty(thumbnail_pic_s03)){
list.add(thumbnail_pic_s03);
}
new MyDialog(MainActivity.this,list).show();
}
});
//创建view包 建MyViewPager类
public class MyViewpager extends ViewPager { public MyViewpager(Context context) { super(context); } public MyViewpager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { try { return super.onInterceptTouchEvent(ev); } catch (Exception e) { e.printStackTrace(); return false; } } }//创建adapter包 建MyAdapter类
public class MyAdapter extends PagerAdapter { private Context context; private List<String> urls; public MyAdapter(Context context, List<String> urls) { this.context = context; this.urls = urls; } @Override public int getCount() { return urls == null ? 0 : urls.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { //返回一个图片 PhotoView photoView = new PhotoView(context); ImageLoader.getInstance().displayImage(urls.get(position), photoView); container.addView(photoView); return photoView; } }//创建my——dialog
<com.example.fanjinwei_projectone_monthtestz.view.MyViewpager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" ></com.example.fanjinwei_projectone_monthtestz.view.MyViewpager> <TextView android:id="@+id/title_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:textColor="@color/colorAccent" />//添加属性 colors文件中 添加
<color name="transparent">#00000000</color> <color name="black">#000000</color>//styles 文件中
<style name="my_dialog_style" parent="@android:style/Theme.Dialog"> <item name="android:background">@color/transparent</item> <item name="android:windowBackground">@color/black</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowIsTranslucent">true</item> </style>//创建dialog包 建MyDialog类
public class MyDialog extends Dialog { //大图的url集合 private List<String> urls; private MyViewpager viewPager; private TextView title; private Activity context; public MyDialog(@NonNull Activity context, List<String> urls) { super(context, R.style.my_dialog_style); this.context=context; this.urls = urls; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_dialog); //拿屏幕的宽高,只有activity有getWindowManager这个方法,所有我们要强转成activity, // dialog是挂载到activity上的,直接getContext就是他的activity WindowManager windowManager = context.getWindowManager(); DisplayMetrics displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics); int windowWidth = displayMetrics.widthPixels; int windowHeight = displayMetrics.heightPixels; //设置diaolog为全屏 Window window = getWindow(); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.x = 0; layoutParams.y = 0; layoutParams.width = windowWidth; // layoutParams.height = windowHeight; window.setAttributes(layoutParams); viewPager = (MyViewpager) findViewById(R.id.view_pager); title = (TextView) findViewById(R.id.title_tv); viewPager.setAdapter(new MyAdapter(getContext(), urls)); title.setText("1/" + urls.size()); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { title.setText(position+1+ "/" + urls.size()); } @Override public void onPageScrollStateChanged(int state) { } }); } }