先看效果图:

android 仿微信朋友圈上传图片,相册选择拍照上传,裁剪编辑等,没什么技术点,直接上代码 如下

1. MainActivity 主类 界面操作类
package com.dynamic;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.app.Dialog;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.ColorDrawable;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.text.Editable;import android.text.Selection;import android.text.Spannable;import android.text.TextWatcher;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.view.ViewTreeObserver.OnGlobalLayoutListener;import android.view.ViewTreeObserver.OnPreDrawListener;import android.view.WindowManager;import android.view.animation.AnimationUtils;import android.view.inputmethod.InputMethodManager;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.GridView;import android.widget.HorizontalScrollView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.PopupWindow;import android.widget.ScrollView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnItemClickListener {    private GridView gridview;    private GridAdapter adapter;    private TextView activity_selectimg_send;    private ImageView back;    private EditText comment_content;    private String temp;    private Button selectimg_bt_content_type, selectimg_bt_search;    private LinearLayout selectimg_relativeLayout_below;    private ScrollView activity_selectimg_scrollView;    private HorizontalScrollView selectimg_horizontalScrollView;    private List categoryList;    private float dp;    public List bmp = new ArrayList();    public List drr = new ArrayList();    protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);        setContentView(R.layout.activity_selectimg);        Init();    }    List urList = new ArrayList();    public void Init() {        dp = getResources().getDimension(R.dimen.dp);        comment_content = (EditText) findViewById(R.id.comment_content);        comment_content.setFocusable(true);        comment_content.setFocusableInTouchMode(true);         back = (ImageView) findViewById(R.id.back);        back.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                MainActivity.this.finish();            }        });        selectimg_horizontalScrollView = (HorizontalScrollView) findViewById(R.id.selectimg_horizontalScrollView);        gridview = (GridView) findViewById(R.id.noScrollgridview);        gridview.setSelector(new ColorDrawable(Color.TRANSPARENT));        gridviewInit();        comment_content.addTextChangedListener(new TextWatcher() {            @Override            public void onTextChanged(CharSequence s, int start, int before,                    int count) {                // TODO Auto-generated method stub                temp = s.toString();            }            @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {                // TODO Auto-generated method stub            }            @Override            public void afterTextChanged(Editable s) {                // TODO Auto-generated method stub            }        });        activity_selectimg_send = (TextView) findViewById(R.id.activity_selectimg_send);        activity_selectimg_send.setOnClickListener(new OnClickListener() {            public void onClick(View v) {                if (bmp.size() < 1) {                    Toast.makeText(getApplicationContext(), "至少需要一张图片",                            Toast.LENGTH_SHORT).show();                    return;                }                ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))                        .hideSoftInputFromWindow(MainActivity.this                                .getCurrentFocus().getWindowToken(),                                InputMethodManager.HIDE_NOT_ALWAYS);                String content = comment_content.getText().toString().trim();                if (content.equals("")) {                    Toast.makeText(getApplicationContext(), "发布的内容不能为空",                            Toast.LENGTH_SHORT).show();                    return;                }                for (int i = 0; i < drr.size(); i++) {                    urList.add(drr.get(i));                }                activity_selectimg_send.setEnabled(false);                // 图片地址 urList;            }        });        selectimg_relativeLayout_below = (LinearLayout) findViewById(R.id.selectimg_relativeLayout_below);        activity_selectimg_scrollView = (ScrollView) findViewById(R.id.activity_selectimg_scrollView);        activity_selectimg_scrollView.setVerticalScrollBarEnabled(false);        final View decorView = getWindow().getDecorView();        final WindowManager wm = this.getWindowManager();        decorView.getViewTreeObserver().addOnGlobalLayoutListener(                new OnGlobalLayoutListener() {                    @Override                    public void onGlobalLayout() {                        @SuppressWarnings("deprecation")                        int displayheight = wm.getDefaultDisplay().getHeight();                        Rect rect = new Rect();                        decorView.getWindowVisibleDisplayFrame(rect);                        int dynamicHight = rect.bottom - rect.top;                        float ratio = (float) dynamicHight                                / (float) displayheight;                        if (ratio > 0.2f && ratio < 0.6f) {                            selectimg_relativeLayout_below                                    .setVisibility(View.VISIBLE);                            activity_selectimg_scrollView.scrollBy(0,                                    activity_selectimg_scrollView.getHeight());                        } else {                            selectimg_relativeLayout_below                                    .setVisibility(View.GONE);                        }                    }                });    }    public void gridviewInit() {        adapter = new GridAdapter(this);        adapter.setSelectedPosition(0);        int size = 0;        if (bmp.size() < 6) {            size = bmp.size() + 1;        } else {            size = bmp.size();        }        LayoutParams params = gridview.getLayoutParams();        final int width = size * (int) (dp * 9.4f);        params.width = width;        gridview.setLayoutParams(params);        gridview.setColumnWidth((int) (dp * 9.4f));        gridview.setStretchMode(GridView.NO_STRETCH);        gridview.setNumColumns(size);        gridview.setAdapter(adapter);        gridview.setOnItemClickListener(this);        selectimg_horizontalScrollView.getViewTreeObserver()                .addOnPreDrawListener(// 绘制完毕                        new OnPreDrawListener() {                            public boolean onPreDraw() {                                selectimg_horizontalScrollView.scrollTo(width,                                        0);                                selectimg_horizontalScrollView                                        .getViewTreeObserver()                                        .removeOnPreDrawListener(this);                                return false;                            }                        });    }    protected void onPause() {        // TODO Auto-generated method stub        // temp=comment_content.getText().toString().trim();        super.onPause();    }    public class GridAdapter extends BaseAdapter {        private LayoutInflater listContainer;        private int selectedPosition = -1;        private boolean shape;        public boolean isShape() {            return shape;        }        public void setShape(boolean shape) {            this.shape = shape;        }        public class ViewHolder {            public ImageView image;            public Button bt;        }        public GridAdapter(Context context) {            listContainer = LayoutInflater.from(context);        }        public int getCount() {            if (bmp.size() < 6) {                return bmp.size() + 1;            } else {                return bmp.size();            }        }        public Object getItem(int arg0) {            return null;        }        public long getItemId(int arg0) {            return 0;        }        public void setSelectedPosition(int position) {            selectedPosition = position;        }        public int getSelectedPosition() {            return selectedPosition;        }        /**         * ListView Item设置         */        public View getView(int position, View convertView, ViewGroup parent) {            final int sign = position;            // 自定义视图            ViewHolder holder = null;            if (convertView == null) {                holder = new ViewHolder();                // 获取list_item布局文件的视图                convertView = listContainer.inflate(                        R.layout.item_published_grida, null);                // 获取控件对象                holder.image = (ImageView) convertView                        .findViewById(R.id.item_grida_image);                holder.bt = (Button) convertView                        .findViewById(R.id.item_grida_bt);                // 设置控件集到convertView                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }            if (position == bmp.size()) {                holder.image.setImageBitmap(BitmapFactory.decodeResource(                        getResources(), R.drawable.icon_addpic_unfocused));                holder.bt.setVisibility(View.GONE);                if (position == 6) {                    holder.image.setVisibility(View.GONE);                }            } else {                holder.image.setImageBitmap(bmp.get(position));                holder.bt.setOnClickListener(new OnClickListener() {                    public void onClick(View v) {                        PhotoActivity.bitmap.remove(sign);                        bmp.get(sign).recycle();                        bmp.remove(sign);                        drr.remove(sign);                        gridviewInit();                    }                });            }            return convertView;        }    }    public class PopupWindows extends PopupWindow {        public PopupWindows(Context mContext, View parent) {            View view = View                    .inflate(mContext, R.layout.item_popupwindows, null);            view.startAnimation(AnimationUtils.loadAnimation(mContext,                    R.anim.fade_ins));            LinearLayout ll_popup = (LinearLayout) view                    .findViewById(R.id.ll_popup);            // ll_popup.startAnimation(AnimationUtils.loadAnimation(mContext,            // R.anim.push_bottom_in_2));            setWidth(LayoutParams.FILL_PARENT);            setHeight(LayoutParams.FILL_PARENT);            setBackgroundDrawable(new BitmapDrawable());            setFocusable(true);            setOutsideTouchable(true);            setContentView(view);            showAtLocation(parent, Gravity.BOTTOM, 0, 0);            update();            Button bt1 = (Button) view                    .findViewById(R.id.item_popupwindows_camera);            Button bt2 = (Button) view                    .findViewById(R.id.item_popupwindows_Photo);            Button bt3 = (Button) view                    .findViewById(R.id.item_popupwindows_cancel);            bt1.setOnClickListener(new OnClickListener() {                public void onClick(View v) {                    photo();                    dismiss();                }            });            bt2.setOnClickListener(new OnClickListener() {                public void onClick(View v) {                    Intent i = new Intent(                            // 相册                            Intent.ACTION_PICK,                            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);                    startActivityForResult(i, RESULT_LOAD_IMAGE);                    dismiss();                }            });            bt3.setOnClickListener(new OnClickListener() {                public void onClick(View v) {                    dismiss();                }            });        }    }    private static final int TAKE_PICTURE = 0;    private static final int RESULT_LOAD_IMAGE = 1;    private static final int CUT_PHOTO_REQUEST_CODE = 2;    private static final int SELECTIMG_SEARCH = 3;    private String path = "";    private Uri photoUri;    public void photo() {        try {            Intent openCameraIntent = new Intent(                    MediaStore.ACTION_IMAGE_CAPTURE);            String sdcardState = Environment.getExternalStorageState();            String sdcardPathDir = android.os.Environment                    .getExternalStorageDirectory().getPath() + "/tempImage/";            File file = null;            if (Environment.MEDIA_MOUNTED.equals(sdcardState)) {                // 有sd卡,是否有myImage文件夹                File fileDir = new File(sdcardPathDir);                if (!fileDir.exists()) {                    fileDir.mkdirs();                }                // 是否有headImg文件                file = new File(sdcardPathDir + System.currentTimeMillis()                        + ".JPEG");            }            if (file != null) {                path = file.getPath();                photoUri = Uri.fromFile(file);                openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);                startActivityForResult(openCameraIntent, TAKE_PICTURE);            }        } catch (Exception e) {            e.printStackTrace();        }    }    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch (requestCode) {        case TAKE_PICTURE:            if (drr.size() < 6 && resultCode == -1) {// 拍照                startPhotoZoom(photoUri);            }            break;        case RESULT_LOAD_IMAGE:            if (drr.size() < 6 && resultCode == RESULT_OK && null != data) {// 相册返回                Uri uri = data.getData();                if (uri != null) {                    startPhotoZoom(uri);                }            }            break;        case CUT_PHOTO_REQUEST_CODE:            if (resultCode == RESULT_OK && null != data) {// 裁剪返回                Bitmap bitmap = Bimp.getLoacalBitmap(drr.get(drr.size() - 1));                PhotoActivity.bitmap.add(bitmap);                bitmap = Bimp.createFramedPhoto(480, 480, bitmap,                        (int) (dp * 1.6f));                bmp.add(bitmap);                gridviewInit();            }            break;        case SELECTIMG_SEARCH:            if (resultCode == RESULT_OK && null != data) {                String text = "#" + data.getStringExtra("topic") + "#";                text = comment_content.getText().toString() + text;                comment_content.setText(text);                comment_content.getViewTreeObserver().addOnPreDrawListener(                        new OnPreDrawListener() {                            public boolean onPreDraw() {                                comment_content.setEnabled(true);                                // 设置光标为末尾                                CharSequence cs = comment_content.getText();                                if (cs instanceof Spannable) {                                    Spannable spanText = (Spannable) cs;                                    Selection.setSelection(spanText,                                            cs.length());                                }                                comment_content.getViewTreeObserver()                                        .removeOnPreDrawListener(this);                                return false;                            }                        });            }            break;        }    }    private void startPhotoZoom(Uri uri) {        try {            // 获取系统时间 然后将裁剪后的图片保存至指定的文件夹            SimpleDateFormat sDateFormat = new SimpleDateFormat(                    "yyyyMMddhhmmss");            String address = sDateFormat.format(new java.util.Date());            if (!FileUtils.isFileExist("")) {                FileUtils.createSDDir("");            }            drr.add(FileUtils.SDPATH + address + ".JPEG");            Uri imageUri = Uri.parse("file:///sdcard/formats/" + address                    + ".JPEG");            final Intent intent = new Intent("com.android.camera.action.CROP");            // 照片URL地址            intent.setDataAndType(uri, "image/*");            intent.putExtra("crop", "true");            intent.putExtra("aspectX", 1);            intent.putExtra("aspectY", 1);            intent.putExtra("outputX", 480);            intent.putExtra("outputY", 480);            // 输出路径            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);            // 输出格式            intent.putExtra("outputFormat",                    Bitmap.CompressFormat.JPEG.toString());            // 不启用人脸识别            intent.putExtra("noFaceDetection", false);            intent.putExtra("return-data", false);            startActivityForResult(intent, CUT_PHOTO_REQUEST_CODE);        } catch (IOException e) {            e.printStackTrace();        }    }    protected void onDestroy() {        FileUtils.deleteDir(FileUtils.SDPATH);        FileUtils.deleteDir(FileUtils.SDPATH1);        // 清理图片缓存        for (int i = 0; i < bmp.size(); i++) {            bmp.get(i).recycle();        }        for (int i = 0; i < PhotoActivity.bitmap.size(); i++) {            PhotoActivity.bitmap.get(i).recycle();        }        PhotoActivity.bitmap.clear();        bmp.clear();        drr.clear();        super.onDestroy();    }    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {        ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))                .hideSoftInputFromWindow(MainActivity.this                        .getCurrentFocus().getWindowToken(),                        InputMethodManager.HIDE_NOT_ALWAYS);        if (arg2 == bmp.size()) {            String sdcardState = Environment.getExternalStorageState();            if (Environment.MEDIA_MOUNTED.equals(sdcardState)) {                new PopupWindows(MainActivity.this, gridview);            } else {                Toast.makeText(getApplicationContext(), "sdcard已拔出,不能选择照片",                        Toast.LENGTH_SHORT).show();            }        } else {            Intent intent = new Intent(MainActivity.this,                    PhotoActivity.class);            intent.putExtra("ID", arg2);            startActivity(intent);        }    }}

2. 图片压缩处理类Bimp

package com.dynamic;import java.io.BufferedInputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.RectF;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.provider.ContactsContract.Contacts.Photo;/** * 压缩图片 *  * @author Administrator *  */public class Bimp {    public static int max = 0;    public static boolean act_bool = true;    public static List bmp = new ArrayList();    // 图片sd地址 上传服务器时把图片调用下面方法压缩后 保存到临时文件夹 图片压缩后小于100KB,失真度不明显    public static List drr = new ArrayList();    // TelephonyManager tm = (TelephonyManager) this    // .getSystemService(Context.TELEPHONY_SERVICE);    public static Bitmap revitionImageSize(String path) throws IOException {        BufferedInputStream in = new BufferedInputStream(new FileInputStream(                new File(path)));        BitmapFactory.Options options = new BitmapFactory.Options();        options.inJustDecodeBounds = true;        // Bitmap btBitmap=BitmapFactory.decodeFile(path);        // System.out.println("原尺寸高度:"+btBitmap.getHeight());        // System.out.println("原尺寸宽度:"+btBitmap.getWidth());        BitmapFactory.decodeStream(in, null, options);        in.close();        int i = 0;        Bitmap bitmap = null;        while (true) {            if ((options.outWidth >> i <= 800)                    && (options.outHeight >> i <= 800)) {                in = new BufferedInputStream(                        new FileInputStream(new File(path)));                options.inSampleSize = (int) Math.pow(2.0D, i);                options.inJustDecodeBounds = false;                bitmap = BitmapFactory.decodeStream(in, null, options);                break;            }            i += 1;        }        // 当机型为三星时图片翻转//      bitmap = Photo.photoAdapter(path, bitmap);//      System.out.println("-----压缩后尺寸高度:" + bitmap.getHeight());//      System.out.println("-----压缩后尺寸宽度度:" + bitmap.getWidth());        return bitmap;    }    public static Bitmap getLoacalBitmap(String url) {        try {            FileInputStream fis = new FileInputStream(url);            return BitmapFactory.decodeStream(fis); // /把流转化为Bitmap图片        } catch (FileNotFoundException e) {            e.printStackTrace();            return null;        }    }    /**     *      * @param x     *            图像的宽度     * @param y     *            图像的高度     * @param image     *            源图片     * @param outerRadiusRat     *            圆角的大小     * @return 圆角图片     */    public static Bitmap createFramedPhoto(int x, int y, Bitmap image, float outerRadiusRat) {        // 根据源文件新建一个darwable对象        Drawable imageDrawable = new BitmapDrawable(image);        // 新建一个新的输出图片        Bitmap output = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(output);        // 新建一个矩形        RectF outerRect = new RectF(0, 0, x, y);        // 产生一个红色的圆角矩形        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);        paint.setColor(Color.RED);        canvas.drawRoundRect(outerRect, outerRadiusRat, outerRadiusRat, paint);        // 将源图片绘制到这个圆角矩形上        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));        imageDrawable.setBounds(0, 0, x, y);        canvas.saveLayer(outerRect, paint, Canvas.ALL_SAVE_FLAG);        imageDrawable.draw(canvas);        canvas.restore();        return output;    }}

4. 文件处理类FileUtils

package com.dynamic;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.graphics.Bitmap;import android.os.Environment;import android.util.Log;public class FileUtils {    public static String SDPATH = Environment.getExternalStorageDirectory()            + "/formats/";    public static String SDPATH1 = Environment.getExternalStorageDirectory()        + "/myimages/";    public static void saveBitmap(Bitmap bm, String picName) {        Log.e("", "保存图片");        try {            if (!isFileExist("")) {                File tempf = createSDDir("");            }            File f = new File(SDPATH, picName + ".JPEG");             if (f.exists()) {                f.delete();            }            FileOutputStream out = new FileOutputStream(f);            bm.compress(Bitmap.CompressFormat.JPEG, 90, out);            out.flush();            out.close();            Log.e("", "已经保存");        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    public static File createSDDir(String dirName) throws IOException {        File dir = new File(SDPATH + dirName);        if (Environment.getExternalStorageState().equals(                Environment.MEDIA_MOUNTED)) {            System.out.println("createSDDir:" + dir.getAbsolutePath());            System.out.println("createSDDir:" + dir.mkdir());        }        return dir;    }    public static boolean isFileExist(String fileName) {        File file = new File(SDPATH + fileName);        file.isFile();        return file.exists();    }    public static void delFile(String fileName){        File file = new File(SDPATH + fileName);        if(file.isFile()){            file.delete();        }        file.exists();    }    public static void deleteDir(String path) {        File dir = new File(path);        if (dir == null || !dir.exists() || !dir.isDirectory())            return;        for (File file : dir.listFiles()) {            if (file.isFile())                file.delete(); // 删除所有文件            else if (file.isDirectory())                deleteDir(path); // 递规的方式删除文件夹        }        dir.delete();// 删除目录本身    }    public static boolean fileIsExists(String path) {        try {            File f = new File(path);            if (!f.exists()) {                return false;            }        } catch (Exception e) {            return false;        }        return true;    }}

4. 图片选择类PhotoActivity

package com.dynamic;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.ImageView;import android.widget.RelativeLayout;public class PhotoActivity extends Activity {    private ArrayList listViews = null;    private ViewPager pager;    private MyPageAdapter adapter;    public static List bitmap = new ArrayList();    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_photo);        pager = (ViewPager) findViewById(R.id.viewpager);        pager.setOnPageChangeListener(pageChangeListener);        for (int i = 0; i < bitmap.size(); i++) {            initListViews(bitmap.get(i));//        }        adapter = new MyPageAdapter(listViews);// 构造adapter        pager.setAdapter(adapter);// 设置适配器        Intent intent = getIntent();        int id = intent.getIntExtra("ID", 0);        pager.setCurrentItem(id);    }    private void initListViews(Bitmap bm) {        if (listViews == null)            listViews = new ArrayList();        ImageView img = new ImageView(this);// 构造textView对象        img.setBackgroundColor(0xff000000);        img.setImageBitmap(bm);        img.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,                LayoutParams.FILL_PARENT));        listViews.add(img);// 添加view    }    private OnPageChangeListener pageChangeListener = new OnPageChangeListener() {        public void onPageSelected(int arg0) {// 页面选择响应函数        // count = arg0;        }        public void onPageScrolled(int arg0, float arg1, int arg2) {// 滑动中。。。        }        public void onPageScrollStateChanged(int arg0) {// 滑动状态改变        }    };    class MyPageAdapter extends PagerAdapter {        private ArrayList listViews;// content        private int size;// 页数        public MyPageAdapter(ArrayList listViews) {// 构造函数                                                            // 初始化viewpager的时候给的一个页面            this.listViews = listViews;            size = listViews == null ? 0 : listViews.size();        }        public void setListViews(ArrayList listViews) {// 自己写的一个方法用来添加数据            this.listViews = listViews;            size = listViews == null ? 0 : listViews.size();        }        public int getCount() {// 返回数量            return size;        }        public int getItemPosition(Object object) {            return POSITION_NONE;        }        public void destroyItem(View arg0, int arg1, Object arg2) {// 销毁view对象            ((ViewPager) arg0).removeView(listViews.get(arg1 % size));        }        public void finishUpdate(View arg0) {        }        public Object instantiateItem(View arg0, int arg1) {// 返回view对象            try {                ((ViewPager) arg0).addView(listViews.get(arg1 % size), 0);            } catch (Exception e) {            }            return listViews.get(arg1 % size);        }        public boolean isViewFromObject(View arg0, Object arg1) {            return arg0 == arg1;        }    }}

代码下载

更多相关文章

  1. android asset中 zip包解压sdcard
  2. 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
  3. Android(安卓)APN的设置问题:默认“已起用数据”关闭
  4. android 连接webservice
  5. Android(安卓)JNI入门第三篇――jni头文件分析
  6. android源码编译出现No private recovery resources for TARGET_
  7. Android_查看linux内核版本和android文件系统版本
  8. android IApplicationToken分析
  9. android学习资料与资源记录

随机推荐

  1. Android的消息处理机制—Looper,Handler,
  2. android rxjava框架 1.0 操作符介绍
  3. Android(安卓)productFlavors 差异化打包
  4. Android(安卓)4.0 Ice Cream Sandwich 带
  5. Galaxy S8及S+全屏显示适配
  6. android开发教程(十一)——android应用程
  7. 我在51CTO的第一篇博客--关于6个小时调试
  8. Android(安卓)跳转权限设置界面的终极适
  9. 【eoe教程】Android中自定义视图的绘制方
  10. Android(安卓)源码开发调试方法