記一個viewpager,用到網絡取數據,回調,設置滑動

fragment中

public class Fragment1 extends Fragment {
	private String imgage="http://192.168.11.57/my/cookbook_hongshairou.bmp";
	@Override
	public View onCreateView(LayoutInflater inflater,
			@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
		View view =inflater.inflate(R.layout.fragment_layout, null);
		
		final ImageView img=(ImageView) view.findViewById(R.id.img);
		
		//回調,設置圖片
		
		NetImageUtil.getImage(imgage, new ImageTool() {
			
			@Override
			public void setImage(Bitmap bmp) {
				img.setImageBitmap(bmp);
				
			}
		});
		
		
		return view;
	}

}



自定義工具中


public class NetImageUtil {
	
	public interface ImageTool{
		void setImage(Bitmap bmp);
	}
	
	public ImageTool tool;
	
	
	//傳入圖片路徑和接口
	public static void getImage(final String path,final ImageTool tool){
		
		
		
		
		
		final Handler handler=new Handler(){
			@Override
			public void handleMessage(Message msg) {
				Bitmap bmp=(Bitmap) msg.obj;
				//接口中的函數,回調操作
				tool.setImage(bmp);
				
			}
		};
		
		//線程裏
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				//網絡獲取數據			
				try {
					HttpClient http=new DefaultHttpClient();				
					HttpPost request=new HttpPost(path);
					HttpResponse resp=http.execute(request);
					byte[] data=EntityUtils.toByteArray(resp.getEntity());
					Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
					Message msg=handler.obtainMessage();
					
					//將內容放到msg中發送
					msg.obj=bitmap;
					handler.sendMessage(msg);
				} catch (ClientProtocolException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
		}).start();
		
		
	}
	

}

mainactivity中



public class MainActivity extends FragmentActivity {
	private ViewPager pager;
	public static String[] imgPath={"http://192.168.11.57/my/cookbook_hongshairou.bmp",
		"http://192.168.11.57/my/cookboook_malexiangguo.bmp",
		"http://192.168.11.57/my/touxiang.png",
		"http://192.168.11.57/my/wo-de.png"};
	
	private List<Fragment> list=new ArrayList<Fragment>();
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		pager=(ViewPager) findViewById(R.id.pager);
		
		list.add(new Fragment1());
		list.add(new Fragment2());
		list.add(new Fragment3());
		list.add(new Fragment4());
		pager.setAdapter(new MyAdapter(getSupportFragmentManager()));
		
		
		
	}

	//這裏用fragmentstatepageradapter,銷燬後數據不會儲存在內存中,可以加載很多
	class MyAdapter extends FragmentStatePagerAdapter{

		public MyAdapter(FragmentManager fm) {
			super(fm);
			// TODO Auto-generated constructor stub
		}

		@Override
		public Fragment getItem(int arg0) {
			// TODO Auto-generated method stub
			return list.get(arg0);
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return list.size();
		}
		
	}
	
	
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章