离线下载

来源:互联网 发布:淘宝扣12分考试答案 编辑:程序博客网 时间:2024/04/27 06:34
package com.example.offline;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends ActionBarActivity {private ListView lv;List<Channel> list = new ArrayList<>();private MyAdapter myAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.lv);setData();myAdapter = new MyAdapter(MainActivity.this, list);lv.setAdapter(myAdapter);}private void setData() {for (int i = 0; i < 30; i++) {Channel channel = new Channel();channel.name = "热门" + i;list.add(channel);}}/** * 下载按钮 *  * @param v */public void load(View v) {if (isNetWorkAvailable(this)) {Intent intent = new Intent();intent.putStringArrayListExtra("name", myAdapter.getList());// intent.putExtra("ss","111");setResult(88, intent);finish();} else {Toast.makeText(this, "网络不可用   ", 0).show();}}/** * 判断当前网络是否可用 *  * @return */public boolean isNetWorkAvailable(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (manager != null) {NetworkInfo info = manager.getActiveNetworkInfo();if (info != null && info.isConnected()) {return true;} else {return false;}} else {return false;}}}

=======================================================================================

package com.example.offline;import java.util.ArrayList;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.assist.FailReason;import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.ListView;import android.widget.TextView;public class HomeActivity extends ActionBarActivity {private TextView tv;private ArrayList<String> stringArrayListExtra;int ii = 0;/** * 模拟接口里的图片地址 */String[] picPath1 = new String[] {"https://gw.alicdn.com/tps/TB133PFKpXXXXbIXFXXXXXXXXXX-520-280.jpg","https://aecpm.alicdn.com/simba/img/TB1yWIyKXXXXXbwXXXXSutbFXXX.jpg","https://img.alicdn.com/tps/TB1E_kqKpXXXXcGXXXXXXXXXXXX-520-280.jpg","https://aecpm.alicdn.com/simba/img/TB1pKE2JVXXXXbpaXXXSutbFXXX.jpg","https://img.alicdn.com/bao/uploaded/i1/TB1r5K.KpXXXXcyXpXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg","https://img.alicdn.com/imgextra/i2/1062618758/TB25Q60qpXXXXXVXpXXXXXXXXXX_!!1062618758.jpg_60x60q90.jpg","https://img.alicdn.com/imgextra/i2/1062618758/TB2sdDMqFXXXXcsXXXXXXXXXXXX_!!1062618758.jpg","https://gw.alicdn.com/bao/uploaded/i7/63418204/TB2DHUkpVXXXXbsXXXXXXXXXXXX_!!63418204.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i8/380101244/TB2V3jSpVXXXXcKXXXXXXXXXXXX_!!380101244.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i4/43084091/TB2Oy7RoFXXXXcyXXXXXXXXXXXX_!!43084091.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i6/TB1enEaJVXXXXbhXFXXXXXXXXXX_!!0-item_pic.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i7/TB1YOmRJFXXXXc.aXXXYXGcGpXX_M2.SS2_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i0/TB1S9dLJFXXXXXVaXXXYXGcGpXX_M2.SS2_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i6/2115168470/TB2LGwsnFXXXXXKXFXXXXXXXXXX_!!2115168470.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i7/140750234460572075/TB1YQBMKpXXXXXLXXXXXXXXXXXX_!!0-pix.jpg_280x380xz.jpg",};/** * 模拟接口里的图片地址 */String[] picPath2 = new String[] {"https://gw.alicdn.com/bao/uploaded/i7/63418204/TB2DHUkpVXXXXbsXXXXXXXXXXXX_!!63418204.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i8/380101244/TB2V3jSpVXXXXcKXXXXXXXXXXXX_!!380101244.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i4/43084091/TB2Oy7RoFXXXXcyXXXXXXXXXXXX_!!43084091.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i6/TB1enEaJVXXXXbhXFXXXXXXXXXX_!!0-item_pic.jpg_280x380xz.jpg"};/** * 模拟接口里的图片地址 */String[] picPath3 = new String[] {"https://gw.alicdn.com/bao/uploaded/i7/TB1YOmRJFXXXXc.aXXXYXGcGpXX_M2.SS2_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i0/TB1S9dLJFXXXXXVaXXXYXGcGpXX_M2.SS2_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i6/2115168470/TB2LGwsnFXXXXXKXFXXXXXXXXXX_!!2115168470.jpg_280x380xz.jpg","https://gw.alicdn.com/bao/uploaded/i7/140750234460572075/TB1YQBMKpXXXXXLXXXXXXXXXXXX_!!0-pix.jpg_280x380xz.jpg", };private ListView picListView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_home);tv = (TextView) findViewById(R.id.tv);picListView = (ListView) findViewById(R.id.picListView);//模拟离线if(!isNetWorkAvailable(this)){picListView.setAdapter(new PicAdapter(picPath1,HomeActivity.this));}}// 选择频道按钮public void offline(View v) {startActivityForResult(new Intent(this, MainActivity.class), 99);}// activity重见@Overrideprotected void onRestart() {super.onRestart();if (stringArrayListExtra != null && stringArrayListExtra.size() > 0) {ImageLoader instance = ImageLoader.getInstance();for (int i = 0; i < picPath1.length; i++) {instance.loadImage(picPath1[i], new ImageLoadingListener() {@Overridepublic void onLoadingStarted(String arg0, View arg1) {// TODO Auto-generated method stub}@Overridepublic void onLoadingFailed(String arg0, View arg1,FailReason arg2) {}@Overridepublic void onLoadingComplete(String arg0, View arg1,Bitmap arg2) {System.out.println("onLoadingComplete");ii += 1;tv.setText(ii + "/" + picPath1.length);}@Overridepublic void onLoadingCancelled(String arg0, View arg1) {// TODO Auto-generated method stub}});}}}@Overrideprotected void onActivityResult(int arg0, int arg1, Intent arg2) {if (arg2 != null) {// 得到包含频道的集合stringArrayListExtra = arg2.getStringArrayListExtra("name");}super.onActivityResult(arg0, arg1, arg2);}public boolean isNetWorkAvailable(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (manager != null) {NetworkInfo info = manager.getActiveNetworkInfo();if (info != null && info.isConnected()) {return true;} else {return false;}} else {return false;}}}
=================================================================

/** *  */package com.example.offline;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.TextView;/** * @author WJL *  */public class MyAdapter extends BaseAdapter {ArrayList<String> string = new ArrayList<>();Context context;List<Channel> list;/** * @param applicationContext * @param list */public MyAdapter(Context context, List<Channel> list) {this.context = context;this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {final ViewHolder viewHolder;if (convertView == null) {viewHolder = new ViewHolder();convertView = View.inflate(context, R.layout.item, null);viewHolder.textView = (TextView) convertView.findViewById(R.id.text);viewHolder.checBox = (CheckBox) convertView.findViewById(R.id.cb);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.checBox.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (viewHolder.checBox.isChecked()) {list.get(position).isSelect = true;string.add(list.get(position).name);} else {list.get(position).isSelect = false;string.remove(list.get(position).name);}}});viewHolder.textView.setText(list.get(position).name);viewHolder.checBox.setChecked(list.get(position).isSelect);return convertView;}class ViewHolder {TextView textView;CheckBox checBox;}public ArrayList<String> getList() {return string;}}
===========================================================================

package com.example.offline;/** *  */import java.io.File;import java.io.IOException;import java.io.InputStream;import com.nostra13.universalimageloader.cache.disc.DiskCache;import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiskCache;import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator;import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;import com.nostra13.universalimageloader.cache.memory.MemoryCache;import com.nostra13.universalimageloader.cache.memory.impl.FIFOLimitedMemoryCache;import com.nostra13.universalimageloader.cache.memory.impl.LargestLimitedMemoryCache;import com.nostra13.universalimageloader.cache.memory.impl.LimitedAgeMemoryCache;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration.Builder;import com.nostra13.universalimageloader.core.download.ImageDownloader;import android.app.Application;import android.os.Environment;import android.widget.Toast;/** * @author WJL *  */public class MyApplication extends Application {private int maxMemory;@Overridepublic void onCreate() {super.onCreate();System.out.println("MyApplication");maxMemory = ((int) Runtime.getRuntime().maxMemory()) / 1024 / 1024;                  System.out.println("最大内存:"+maxMemory);                  Toast.makeText(this, "   "+maxMemory, 0).show();                           //初始ImageLoaderinitImageLoader();                                    }/** *                    //初始ImageLoader */@SuppressWarnings("deprecation")private void initImageLoader() {//得到ImageLoader实例ImageLoader imageLoader=ImageLoader.getInstance();//得到ImageLoader配置的建筑者对象ImageLoaderConfiguration.Builder builder=new Builder(this);//设置磁盘(sd卡)缓存的大小限制//builder.diskCacheSize(maxCacheSize);try {//imageDownloader//设置磁盘(sd卡)缓存策略,参数一:缓存文件的路径,参数二:文件名的命名方法,有MD5,HashCode,参数三:缓存的最大内存builder.discCache(new LruDiskCache(new File(Environment.getExternalStorageDirectory().getPath()+"/aaa"), new Md5FileNameGenerator(), 2*1024*1204));//设置磁盘(sd卡)缓存策略,限制缓存时间;参数一:缓存文件的路径,参数二:缓存文件的存活时间,系统当前时间-文件的最新修改时间 > maxAge//builder.discCache(new LimitedAgeDiskCache(cacheDir, maxAge) );} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//设置内存缓存的大小限制,默认是最大内存的1/8builder.memoryCacheSize(maxMemory/8);//设置内存缓存策略                根据先进先出的原则上删除多余对象  LinkedList  参数一:设置的缓存内存大小//builder.memoryCache(new FIFOLimitedMemoryCache(sizeLimit));//设置内存缓存策略          先删除占内存最大的图片      HashMap    参数一:设置的缓存内存大小//  builder.memoryCache(new LargestLimitedMemoryCache(sizeLimit));         //   设置内存缓存策略    Lru算法   LinkedHashMap  最大的缓存大小//builder.memoryCache(new LruMemoryCache(maxSize))//设置内存缓存策略        最少被用到的对象会被删除      HashMap    参数一:设置的缓存内存大小//builder.memoryCache(new UsingFreqLimitedMemoryCache(sizeLimit))//设置内存缓存策略        最早被添加的对象会被删除     HashMap  参数一:MemoryCache对象   参数二:缓存失效的最大时间//builder.memoryCache(new LimitedAgeMemoryCache(cache, maxAge));//初始化imageLoader配置imageLoader.init(builder.build());/*使用默认的缓存策略ImageLoader imageLoader2=ImageLoader.getInstance();ImageLoaderConfiguration.Builder configuration=new ImageLoaderConfiguration.Builder(this);imageLoader2.init(configuration.build());*/}}
==============================================================

package com.example.offline;import com.nostra13.universalimageloader.core.ImageLoader;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;public class PicAdapter extends BaseAdapter {String[] picPath1;Context context;public PicAdapter(String[] picPath1, Context context) {this.picPath1 = picPath1;this.context = context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn picPath1.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view = View.inflate(context, R.layout.pic_item, null);ImageView imageView = (ImageView) view.findViewById(R.id.imageView);ImageLoader imageLoader=ImageLoader.getInstance();imageLoader.displayImage(picPath1[position], imageView);return view;}}
=========================================================================

package com.example.offline;public class Channel {String name;boolean isSelect;}
==========================================================================

//布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:onClick="offline"        android:text="离线下载" />    <TextView        android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignTop="@+id/button1"        android:layout_marginLeft="57dp"        android:layout_toRightOf="@+id/button1"        android:text="@string/hello_world" />    <ListView        android:id="@+id/picListView"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_below="@id/button1" >    </ListView></RelativeLayout>
===================================================================

//布局


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="load"        android:text="下载" />    <ListView        android:id="@+id/lv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/button" >    </ListView></RelativeLayout>

=================================================================

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView        android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="频道" />    <CheckBox        android:id="@+id/cb"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true" /></RelativeLayout>
==============================================================

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ImageView        android:id="@+id/imageView"        android:layout_width="200dp"        android:layout_height="200dp" /></LinearLayout>






0 0
原创粉丝点击