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();
}
}
}