从网络获取图片进行自动轮播以及其他
来源:互联网 发布:三国霸业源码 编辑:程序博客网 时间:2024/06/16 07:27
package com.example.mounthexam.fragment;
import android.content.Context;
import android.nfc.Tag;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.mounthexam.R;
import com.example.mounthexam.constant.Constant;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Fragment1 extends Fragment implements View.OnClickListener {
public static final String TAG = “Fragment1”;
private ViewPager vp;
private int currentPosition = 0;
private List imageList;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
//处理轮播
vp.setCurrentItem(currentPosition);
break;
case 1:
//修改ui
String str = (String) msg.obj; tvWeatherInfo.setText(str); break; } }};private EditText etCityName;private TextView tvWeatherInfo;@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //创建图片连接的集合 imageList = new ArrayList<>(); imageList.add("http://i3.s2.dpfile.com/2010-12-20/6201691_b.jpg(249x249)/thumb.jpg"); imageList.add("http://i2.dpfile.com/s/img/shopnopic_x249.9182bfb823d671e1eb86a239ca54f88e.png"); imageList.add("http://i1.s1.dpfile.com/pc/f59ce7b879eea202f36692aa9ead9dac(249x249)/thumb.jpg");}@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment1,container,false);}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); vp = (ViewPager) getView().findViewById(R.id.vp); tvWeatherInfo = (TextView) getView().findViewById(R.id.tvWeatherInfo); etCityName = (EditText) getView().findViewById(R.id.etCityName); getView().findViewById(R.id.btnFind).setOnClickListener(this); //设置适配器 vp.setAdapter(new MyPagerAdapter()); autoPlay();}@Overridepublic void onClick(View v) { // TODO: 2017/4/25 search action switch (v.getId()){ case R.id.btnFind: { String cityName = etCityName.getText().toString().trim(); if(!TextUtils.isEmpty(cityName)){ //请求数据 getWeatherInfo(cityName); }else { Toast.makeText(getActivity(), "城市名称不能为空!", Toast.LENGTH_SHORT).show(); } } break; }}/** * 轮播 */private void autoPlay(){ new Thread(){ @Override public void run() { super.run(); while (true){ SystemClock.sleep(3000); currentPosition++; handler.sendEmptyMessage(0); } } }.start();}//获取天气信息private void getWeatherInfo(final String cityName){ new Thread(){ @Override public void run() { super.run(); try { //创建一个信封 SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(SoapEnvelope.VER11); //得到一张信纸 SoapObject soapObj = new SoapObject(Constant.NAME_SPACE,Constant.METHOD_NAME); //添加请求参数信息 写具体的信 soapObj.addProperty("theUserID",Constant.USER_ID); soapObj.addProperty("theCityCode",cityName); //添加到信封 envelop.bodyOut = soapObj; //设置平台兼容性 envelop.dotNet = true; //向服务发起建立连接 HttpTransportSE htse = new HttpTransportSE(Constant.URL); //发送请求 htse.call(Constant.NAME_SPACE + Constant.METHOD_NAME,envelop); //创建一个容器 StringBuffer sb = new StringBuffer(); //等待服务器响应 if(envelop.getResponse() != null){//成功 //得到相应内容 SoapObject results = (SoapObject) envelop.bodyIn; //解析 SoapObject subSoapObj = (SoapObject) results.getProperty("getWeatherResult"); //for (int i = 0; i < subSoapObj.getPropertyCount(); i++) { //注意 key-value 看作是一个soapprimitive类型 //SoapPrimitive childResult = (SoapPrimitive) subSoapObj.getProperty(i); //Log.d(TAG, "run: "+childResult); sb.append("今日天气状况 : "+subSoapObj.getProperty(4)+"\r\n" + "当前城市 : "+subSoapObj.getProperty(1)); Log.d(TAG, "run: "+sb.toString()); //} Message msg = handler.obtainMessage(); msg.what = 1; msg.obj = sb.toString(); handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }.start();}/** * viewpager的适配器 */class MyPagerAdapter extends PagerAdapter{ private DisplayImageOptions options; public MyPagerAdapter(){ //构建图片的缓存选项 options = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .build(); } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { //super.destroyItem(container, position, object); container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(getActivity()); //加载图片 ImageLoader.getInstance(). displayImage(imageList.get(position % imageList.size()),imageView,options); container.addView(imageView); return imageView; }}
}
- 从网络获取图片进行自动轮播以及其他
- 获取网络图片+ViewPager+自动轮播
- 关于banner获取网络图片设置自动轮播
- 网络获取图片实现无线自动轮播
- ViewPager自动轮播+网络请求图片
- 自动轮播+获取网络json
- 获取网络图片进行自动轮播图加小圆点
- 图片自动轮播
- 图片自动轮播
- 图片自动轮播
- 自动轮播图片
- 图片自动轮播
- Android中ConvenientBanner的使用--获取网络图片 --(实现效果是自动轮播图片)
- 无限自动轮播加小点加从网上获取图片
- 无线自动轮播,获取网络上的图片+scrollView+listView 联动
- 自动轮播,网络获取图片并且点击跳转详细页面
- android 视频和图片切换并进行自动轮播
- Viewpager图片自动轮播
- linux之selinux
- Docker容器云在金融行业的应用
- 应用MySQL数据库
- 为IBM 3650 M2 服务器配置RAID卡
- Linux修改ip、MAC、SDN、gateway、host-name
- 从网络获取图片进行自动轮播以及其他
- Tomcat和Apache
- 关于PHP开启缓冲函数系列函数
- serialVersionUID作用
- 使用Android Studio调试内存问题
- Smart View的客户化开发
- 用GCD实现同步锁
- android 调用系统相册选取照片或者打开相机拍照获取图片
- String.Format方法