仿探探编辑页图片拖动效果

最近来了一个新的需求,要做一个类似探探的个人编辑页面,丛里找到外啊,图片拍照到相册选择在到图片拖动效果,找的我呀,不过所幸做出来了,今天无意间找到一位大神 的demo,下载运行一看,都有,瞬间都想奔溃了。所有需求都有,已笑哭。给大家分享一下。

先看看效果图

仿探探编辑页图片拖动效果仿探探编辑页图片拖动效果



这就是页面的所有代码

package com.stone.dragsquare;

import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.util.SparseArray;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

import com.swifty.dragsquareimage.DraggablePresenter;
import com.swifty.dragsquareimage.DraggablePresenterImpl;
import com.swifty.dragsquareimage.DraggableSquareView;

/**
 * LZN
 * 显示主页
 */
public class MainActivity extends AppCompatActivity {

    private TextView contentText;
    private DraggablePresenter draggablePresent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().setTitle("编辑个人资料");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        //这个是图片显示的卡片
        DraggableSquareView dragSquare = (DraggableSquareView) findViewById(R.id.drag_square);
        contentText = (TextView) findViewById(R.id.contentText);
        //接口,传参
        draggablePresent = new DraggablePresenterImpl(this, dragSquare);
        draggablePresent.setCustomActionDialog(new MyActionDialog(this));
        //图片文件资源
        draggablePresent.setImages(new String[]{"http://lorempixel.com/400/400?flag=0", "http://lorempixel.com/400/400?flag=1", "http://lorempixel.com/400/400?flag=2", "http://lorempixel.com/400/400?flag=3", "http://lorempixel.com/400/400?flag=4", "http://lorempixel.com/400/400?flag=5"});
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:// 点击返回图标事件
                this.finish();
            default:
                return super.onOptionsItemSelected(item);
        }
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent result) {
        draggablePresent.onActivityResult(requestCode, resultCode, result);
    }

    /**
     * 根据Uri获取图片文件的绝对路径
     */
    public String getAbsolutePath(final Uri uri) {
        if (null == uri) {
            return null;
        }

        final String scheme = uri.getScheme();
        String data = null;
        if (scheme == null) {
            data = uri.getPath();
        } else if (ContentResolver.SCHEME_FILE.equals(scheme)) {
            data = uri.getPath();
        } else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
            Cursor cursor = getContentResolver().query(uri,
                    new String[]{MediaStore.Images.ImageColumns.DATA}, null, null, null);
            if (null != cursor) {
                if (cursor.moveToFirst()) {
                    int index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
                    if (index > -1) {
                        data = cursor.getString(index);
                    }
                }
                cursor.close();
            }
        }
        return data;
    }

    public void showUrls(View view) {
        SparseArray<String> array = draggablePresent.getImageUrls();
        if (array == null) return;
        StringBuilder stringBuffer = new StringBuilder();
        for (int i = 0; i < array.size(); i++) {
            String o = array.get(array.keyAt(i));
            stringBuffer.append(i).append(":").append(o).append("\n");
        }
        contentText.setText(stringBuffer.toString());
    }
}


是不是很简洁,但是调用的方法比较多,依赖的包也有不少代码,就不一一贴了,我把资源给大家传上去。



下载地址:http://download.****.net/download/leiyaqiang/9957424