Android 自定义对话框中的viewpaper,如facebook

Android 自定义对话框中的viewpaper,如facebook,android,android-viewpager,android-alertdialog,android-custom-view,Android,Android Viewpager,Android Alertdialog,Android Custom View,我正在学习android编程 我想这样创作。?你能帮我个忙吗 Tks。 P/s:我认为使用带有自定义对话框的图纸 package com.example.price.service; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.List;

我正在学习android编程 我想这样创作。?你能帮我个忙吗 Tks。 P/s:我认为使用带有自定义对话框的图纸

package com.example.price.service;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.drawable.ColorDrawable;
import android.os.AsyncTask;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.example.price.R;
import com.example.price.model.Photos_Json;
import com.example.price.model.Photos_List;
import com.example.price.model.Place;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.utils.StorageUtils;

public class MyAdapter_Place  extends ArrayAdapter<Place> {

      Dialog dialog;
    Activity context=null;
     ArrayList<Place> myArray=null;
     int layoutId;
     Gallery gallery ;
     ArrayList<String> ImageUrl=new ArrayList<String>();
     String url="http://social-nice-price.appspot.com/webservices/Places/";
    public MyAdapter_Place(Activity context, int resource, ArrayList<Place> arr) {
        super(context, resource, arr);
        // TODO Auto-generated constructor stub
         this.context=context;
         this.layoutId=resource;
         this.myArray= arr;
    }
    public View getView(int position, View convertView,
             ViewGroup parent) {
        // lay Layout 
        LayoutInflater inflater=context.getLayoutInflater();
        convertView=inflater.inflate(layoutId, null);
        // khai bao cac Phan tu  de SETTing  sau nay 
        TextView Txt_sellingPrice=(TextView)convertView.findViewById(R.id.Txt_sellingPrice);
        TextView Txt_priceAfterDiscount=(TextView)convertView.findViewById(R.id.Txt_priceAfterDiscount);
        TextView Txt_address=(TextView)convertView.findViewById(R.id.Txt_address);
        TextView Txt_updateDate=(TextView)convertView.findViewById(R.id.Txt_updateDate);
        TextView Txt_hotline=(TextView)convertView.findViewById(R.id.Txt_hotline);
        TextView Txt_name=(TextView)convertView.findViewById(R.id.Txt_name);
        TextView Txt_website=(TextView)convertView.findViewById(R.id.Txt_website);
         gallery = (Gallery)convertView.findViewById(R.id.gallery1);
        ImageView ChiDuong=(ImageView)convertView.findViewById(R.id.Imageview_chiduong);
         // Lya phan tu tai vi tri position
        Place place=myArray.get(position);

        // Setting data
        Txt_sellingPrice.setText("Giá Bán : "+place.getSellingPrice());
        Txt_priceAfterDiscount.setText("Giá Đã Giảm : "+place.getPriceAfterDiscount());
        Txt_address.setText("Địa Chỉ : "+place.getAddress());
        //Txt_productCode.setText("Mã Sản Phẩm : "+place.getProductCode());
        Txt_updateDate.setText("Ngày Cập Nhật : "+place.UpdateDate);
        Txt_hotline.setText("Hotline : " +place.getHotLine());
        Txt_name.setText("Tên Quán : " +place.getName());
        Txt_website.setText("Website : "+place.getWebsite());

        //hien thi anh viewpager

        //  lay du lieu json ,=> hinh anh 
        Gson(url+place.ProductCode+"/");

          gallery.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView parent, View v, int position,
                        long id) {

                  String temp=ImageUrl.get(position);
                  //Toast.makeText(context, temp, Toast.LENGTH_LONG).show();

                  //  dialog hien khi click vao anh trong gallery
                    dialog = new Dialog(context);
                dialog.setContentView(R.layout.custom_dialog);
                ViewPager pager=(ViewPager)dialog.findViewById(R.id.pager);
                pager.setAdapter(new ImagePagerAdapter(ImageUrl));
                pager.setCurrentItem(0);
                // ImageView imgselect=(ImageView)dialog.findViewById(R.id.Image_dialog);
                 dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
                dialog.show();
                //imageLoader.displayImage(temp, imgselect,options);


                }
            });

        ChiDuong.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

        return convertView;

    }


    public void Gson(String url){

        String json ="";
          try {
             json = readUrl(url);
        }
        catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          if(json!="" && json!=null){
            Gson gson = new Gson();   
            Photos_List page = gson.fromJson(json, Photos_List.class); 
            List<Photos_Json> temp=page.place.Photos;
            int i=0;
            for(Photos_Json a:temp){
                ImageUrl.add(a.Link);
            }


          }
          gallery.setAdapter(new ImageGalleryAdapter1());

            gallery.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView parent, View v, int position,
                        long id) {



                }
            });
    }
      public static String readUrl(String urlString) throws Exception {
            BufferedReader reader = null;
            try {
                URL url = new URL(urlString);
                reader = new BufferedReader(new InputStreamReader(url.openStream()));
                StringBuffer buffer = new StringBuffer();
                int read;
                char[] chars = new char[1024];
                while ((read = reader.read(chars)) != -1)
                    buffer.append(chars, 0, read); 

                return buffer.toString();
            } finally {
                if (reader != null)
                    reader.close();
            }
        }

      ImageLoader imageLoader;
      DisplayImageOptions options;
      private class ImageGalleryAdapter1 extends BaseAdapter {

          private int[] imageUrls1={R.drawable.ic_home,R.drawable.bestbuy};

          @Override
            public int getCount() {
                return ImageUrl.size();
            }

            @Override
            public Object getItem(int position) {
                return position;
            }

            @Override
            public long getItemId(int position) {
                return position;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {



                ImageView imageView = (ImageView) convertView;
                if (imageView == null) {
                    imageView = (ImageView)context.getLayoutInflater().inflate(R.layout.item_gallery_image, parent, false);
                }
                  options = new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisc(true)
                    .considerExifParams(true)
                    .bitmapConfig(Bitmap.Config.RGB_565)
                    .build();
                 imageLoader=ImageLoader.getInstance();
                File cacheDir = StorageUtils.getCacheDirectory(context);
                ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                        .memoryCacheExtraOptions(480, 800) // default = device screen dimensions
                        .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null)
                        .taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
                        .taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR)
                        .threadPoolSize(3) // default
                        .threadPriority(Thread.NORM_PRIORITY - 1) // default
                        .tasksProcessingOrder(QueueProcessingType.FIFO) // default
                        .denyCacheImageMultipleSizesInMemory()
                        .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // default
                        .memoryCacheSize(2 * 1024 * 1024)
                        .discCache(new UnlimitedDiscCache(cacheDir)) // default
                        .discCacheSize(50 * 1024 * 1024)
                        .discCacheFileCount(100)
                        .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
                        .imageDownloader(new BaseImageDownloader(context)) // default
                        .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
                        .build();
                imageLoader.init(config);
                imageLoader.displayImage(ImageUrl.get(position), imageView, options);
                //imageView.setImageResource(imageUrls[position]);
                return imageView;
            }
        }
        private class ImagePagerAdapter extends PagerAdapter {

            private ArrayList<String> images=new ArrayList<String>();
            private LayoutInflater inflater;

            ImagePagerAdapter(ArrayList<String> images) {
                this.images = images;
                // inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView((View) object);
            }

            @Override
            public int getCount() {
                return images.size();
            }

            @Override
            public Object instantiateItem(ViewGroup view, int position) {
                 LayoutInflater inflater = (LayoutInflater) view.getContext()
                            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View imageLayout = inflater.inflate(R.layout.item_paper_image, view, false);
                assert imageLayout != null;
                ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
                final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);

                imageLoader.displayImage("R.drawable.bestbuy", imageView, options);

                view.addView(imageLayout, 0);
                return imageLayout;
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view.equals(object);
            }

            @Override
            public void restoreState(Parcelable state, ClassLoader loader) {
            }

            @Override
            public Parcelable saveState() {
                return null;
            }
}
}   

package com.example.price.service;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.InputStreamReader;
导入java.net.URL;
导入java.util.ArrayList;
导入java.util.List;
导入android.app.Activity;
导入android.app.Dialog;
导入android.content.Context;
导入android.graphics.Bitmap;
导入android.graphics.Bitmap.CompressFormat;
导入android.graphics.drawable.ColorDrawable;
导入android.os.AsyncTask;
导入android.os.Parcelable;
导入android.support.v4.view.PagerAdapter;
导入android.support.v4.view.ViewPager;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.BaseAdapter;
导入android.widget.Gallery;
导入android.widget.ImageView;
导入android.widget.ProgressBar;
导入android.widget.TextView;
导入com.example.price.R;
导入com.example.price.model.Photos_Json;
导入com.example.price.model.Photos\u列表;
导入com.example.price.model.Place;
导入com.google.gson.gson;
导入com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
导入com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
使用FreqLimitedMemoryCache导入com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
导入com.nostra13.universalimageloader.core.DisplayImageOptions;
导入com.nostra13.universalimageloader.core.ImageLoader;
导入com.nostra13.universialimageloader.core.imageloader配置;
导入com.nostra13.universalimageloader.core.assist.QueueProcessingType;
导入com.nostra13.universalimageloader.core.download.BaseImageDownloader;
导入com.nostra13.universialimageloader.utils.StorageUtils;
公共类MyAdapter_Place扩展ArrayAdapter{
对话;
活动上下文=null;
ArrayList myArray=null;
国际布局;
画廊;
ArrayList ImageUrl=新的ArrayList();
字符串url=”http://social-nice-price.appspot.com/webservices/Places/";
公共MyAdapter_位置(活动上下文、int资源、ArrayList arr){
超级(上下文、资源、arr);
//TODO自动生成的构造函数存根
this.context=context;
this.layoutId=资源;
this.myArray=arr;
}
公共视图getView(int位置,视图转换视图,
视图组(父级){
//铺设布局
LayoutInflater充气器=上下文。getLayoutInflater();
convertView=充气机。充气(layoutId,null);
//开包开潘图德设秀内
TextView Txt_sellingPrice=(TextView)convertView.findViewById(R.id.Txt_sellingPrice);
TextView Txt_priceAfterDiscount=(TextView)convertView.findViewById(R.id.Txt_priceAfterDiscount);
TextView Txt_地址=(TextView)convertView.findViewById(R.id.Txt_地址);
TextView Txt_updateDate=(TextView)convertView.findViewById(R.id.Txt_updateDate);
TextView Txt_热线=(TextView)convertView.findViewById(R.id.Txt_热线);
TextView Txt_name=(TextView)convertView.findViewById(R.id.Txt_name);
TextView Txt_网站=(TextView)convertView.findViewById(R.id.Txt_网站);
gallery=(gallery)convertView.findViewById(R.id.gallery1);
ImageView ChiDuong=(ImageView)convertView.findViewById(R.id.ImageView_ChiDuong);
//李潘图台六号
Place=myArray.get(位置);
//设置数据
Txt_sellingPrice.setText(“GiáBán:+place.getSellingPrice());
Txt_priceAfterDiscount.setText(“GiáĐGiảm:“+place.getPriceAfterDiscount());
Txt_address.setText(“Đ”ị阿奇ỉ : "+place.getAddress());
//Txt_productCode.setText(“MãSản Phẩm:“+place.getProductCode());
Txt_updateDate.setText(“Ngáy Cậ新罕布什尔州ật:“+地点.更新日期);
Txt_hotel.setText(“热线:+place.gethotel());
Txt_name.setText(“Tên Quán:+place.getName());
Txt_website.setText(“网站:+place.getWebsite());
//hien thi-anh寻呼机
//放在那里,=>hinh anh
Gson(url+place.ProductCode+“/”);
gallery.setOnItemClickListener(新的OnItemClickListener(){
公共控件单击(AdapterView父对象、视图v、内部位置、,
长id){
字符串temp=ImageUrl.get(位置);
//Toast.makeText(上下文、临时、Toast.LENGTH_LONG).show();
//对话框hien khi单击vao anh TRUNG画廊
对话框=新对话框(上下文);
setContentView(R.layout.custom_对话框);
ViewPager pager=(ViewPager)dialog.findViewById(R.id.pager);
设置适配器(新的ImagePagerAdapter(ImageUrl));
pager.setCurrentItem(0);
//ImageView imgselect=(ImageView)dialog.findViewById(R.id.Image\u dialog);
dialog.getWindow().setBackgroundDrawable(新的ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.show();
//imageLoader.displayImage(临时、imgselect、选项);
}
});
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
}
});
返回视图;
}
公共无效Gson(字符串url){
字符串json=“”;
试一试{
json=readUrl(url);
}
捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
如果(json!=“”&&json!=null){
Gson Gson=新的Gson();
<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:adjustViewBounds="true"
     />

<ProgressBar
    android:id="@+id/loading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="gone" />
  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" > <android.support.v4.view.ViewPager
 xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/pager"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" /> 
</RelativeLayout>