Android 自定义对话框中的viewpaper,如facebook
我正在学习android编程 我想这样创作。?你能帮我个忙吗 Tks。 P/s:我认为使用带有自定义对话框的图纸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;
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>