工具

将流转化成字符串:
public class Utils {
public static String getutls(InputStream inputStream){
try {
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
byte[] by=new byte[1024];
int len=0;
while((len=inputStream.read(by))!=-1){
outputStream.write(by,0,len);
}
return outputStream.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

}

ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(aDefault);

配置缓存图片到sd上面:

MyApplocation extends Application {
@Override
public void onCreate() {
super.onCreate();
//缓存路径到sd卡上
File cachdir= StorageUtils.getOwnCacheDirectory(this, Environment.getExternalStorageDirectory().getPath());
ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
.threadPoolSize(3)//配置的数量
.memoryCache(new LruMemoryCache(2*1024*1024))//内存缓存图片 2M
.diskCache(new UnlimitedDiskCache(cachdir))//配置sd的缓存路径
.diskCacheSize(50*1024*1024)//sd上缓存50m的图片
.diskCacheFileCount(100)//缓存文件的数量 100个
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.build();
//配置缓存选项
ImageLoader.getInstance().init(configuration);
}
}

//缓存图片
ImageLoader.getInstance().displayImage(list.get(position).getMiddle_image().getUrl_list(),image1,options);

public class MyBaseAdapter extends BaseAdapter {
private Context context;
private List

}

将网络图片数据缓存到sd上即使没有网,也可以用:
if (code==200){
InputStream inputStream = connection.getInputStream();
String json = User.getutils(inputStream);
//将网络图片数据缓存到sd上即使没有网,数据库 sharedperferenced
File file=new File(Environment.getExternalStorageDirectory(),”mein.txt”);
if (!file.exists()){
OutputStream os=new FileOutputStream(file);
os.write(json.getBytes());
//关闭流
inputStream.close();
os.close();
}

return json;

压缩图片:
nputStream inputStream = connection.getInputStream();
//转换为图片
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
//压缩
BitmapFactory.Options options=new BitmapFactory.Options();
//放弃对图片数据的解析,只获取他的宽高
options.inJustDecodeBounds=true;
options.inSampleSize=8;//计算采样率

//真正的去解析
options.inJustDecodeBounds=false;
bitmap= BitmapFactory.decodeStream(inputStream);//这样才真正的去压缩图片了。

return bitmap;

ViewPager实现轮播:
public class MainActivity extends AppCompatActivity {

private List<String> list;
private ViewPager vp;
private int iunto=33;
Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        vp.setCurrentItem(iunto);
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    vp = (ViewPager) findViewById(R.id.vp);
    list = new ArrayList<>();
    list.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg");
    list.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg");
    list.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg");
    vp.setAdapter(new MyAdapter());
    LUNBO();

}

private void LUNBO() {
    new Thread(){
        @Override
        public void run() {
            super.run();
            while (true){
                SystemClock.sleep(3000);
                iunto++;
                handler.sendEmptyMessage(0);
            }

        }
    }.start();
}

class MyAdapter extends PagerAdapter{

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

//执行网络加载
final ImageView image=new ImageView(MainActivity.this);
//执行图片加载操作
new ImageAsyncTask(new ImageAsyncTask.Task() {
@Override
public void task(Bitmap bitmap) {
image.setImageBitmap(bitmap);
}
}).execute(list.get(position%list.size()));//取出图片地址
container.addView(image);
return image;
}

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

}

ImageAcyncTask继承AsyncTask

}

创建BaseAdapter适配器上拉和下拉多条目数据:
在public class MyBaseAdapter extends BaseAdapter {里面写
/**
* 加载更多数据
*/
public void addMore(List

——————————————-


—————————————


得到手机号码归属地websering:
public class There extends AppCompatActivity {

private EditText edphone;
private TextView tv_there;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.there);
    edphone = (EditText) findViewById(R.id.edphone);
    tv_there = (TextView) findViewById(R.id.tv);
}

public void but_ChaXun(View view) {
    new Thread(){
        @Override
        public void run() {
            super.run();
            String phone=edphone.getText().toString();
            final String phone1 = getPhone(phone);//得到号码归属地
            runOnUiThread(new Runnable() {//主线程更新
                @Override
                public void run() {
                    tv_there.setText(phone1);
                }
            });
        }
    }.start();

}

//查询获得数据
private String getPhone(String phone) {
    String url = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx";
    String name_url = "http://WebXml.com.cn/";
    String method_name = "getMobileCodeInfo";
    try {
        //获得协议版本
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        SoapObject soapObject = new SoapObject(name_url, method_name);
        soapObject.addProperty("mobileCode", phone);
        //存回去
        envelope.bodyOut = soapObject;
        //设置跨平台的兼容性
        envelope.dotNet = true;
        //建立连接
        HttpTransportSE httpTransportSE = new HttpTransportSE(url);
        //发送请求
        httpTransportSE.call(name_url + method_name, envelope);
        //判断请求是否发送成功
        if (envelope.getResponse() != null) {
            SoapObject object = (SoapObject) envelope.bodyIn;
            String local = object.getProperty("getMobileCodeInfoResult").toString();
            System.out.println("手机号码归属地:" + object.toString());
            return local;
        }

    } catch (IOException e) {
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    }
    return "";
}

}


使用异步任务类进行网络请求new AsyncTask

}

RunOnUIThread:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    tv = (TextView)findViewById(R.id.textView1);
}

public void mclick(View v){

    /*long count=0;
    //模拟一个耗时操作
    for(int i=0;i<Integer.MAX_VALUE;i++){
        count++;

// Log.d(“zzz”, “count:”+count);
}*/

    showresult();


}


public void mmclick(View v){
    Toast.makeText(this, "哈哈!", 0).show();


}

public void showresult(){
    new Thread(){
        long count=0;
        public void run() {

            //模拟一个耗时操作
            for(int i=0;i<Integer.MAX_VALUE;i++){
                count++;
                Log.d("zzz", "count:"+count);
                if(count==5000){
                    break;
                }
            }

            runOnUiThread(new Runnable(){

                @Override
                public void run() {
                    //直接更新UI的代码
                    tv.setText(count+"");

                }});
            /*tv.post(new Runnable(){

                @Override
                public void run() {
                    //直接更新UI的代码
                    tv.setText(count+"");

                }});*/

        };
    }.start();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值