自定义可以来回拖拽的控件,通过拖拽改变图片顺序

首先穿件一个ReportBaseCell
package com.ankoninc.esdiagnose.view;

import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.ankoninc.esdiagnose.R;

public class ReportBaseCell extends LinearLayout {

    private TextView mTitleView;
    private WrappedButton mButton;

    private String mTitle;

    public ReportBaseCell(Context context) {
        this(context, null);
    }

    public ReportBaseCell(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ReportBaseCell(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ReportCellItem);
        if (a != null) {
            mTitle = a.getString(R.styleable.ReportCellItem_reportTitleText);
            a.recycle();
        }

        setupViews(context);
    }

    private void setupViews(Context context) {

        setOrientation(VERTICAL);

        View titleContainer = inflate(context, R.layout.report_cell_title, this);
        mTitleView = (TextView) titleContainer.findViewById(R.id.title);
        mTitleView.setText(mTitle);

        mButton = (WrappedButton) titleContainer.findViewById(R.id.button);
    }

    public void setTitle(int resId) {
        mTitleView.setText(resId);
    }

    public void setTitle(String text) {
        mTitleView.setText(text);
    }

    public void setButtonText(int resId) {
        mButton.setText(resId);
    }

    public void setButtonText(String text) {
        mButton.setText(text);
    }

    public void setButtonClickListener(OnClickListener listener) {
        mButton.setOnClickListener(listener);
    }

    public void setButtonVisibility(boolean visible) {
        mButton.setVisibility(visible ? VISIBLE : GONE);
    }
}

第二步:
package com.ankoninc.esdiagnose.view;

import android.content.Context;
import android.graphics.Point;
import android.graphics.PointF;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;

import com.ankoninc.data.MedicalExamination;
import com.ankoninc.esdiagnose.R;
import com.ankoninc.esdiagnose.report.DragManager;
import com.ankoninc.esdiagnose.report.DragState;
import com.ankoninc.esdiagnose.report.ReportImageAdapter;
import com.ankoninc.imageview.model.DownloadResult;
import com.ankoninc.imageview.model.ImageDiagnoseItem;
import com.ankoninc.utils.Log;

import java.util.List;

/**
 * 报告图片的,item之间可移动交换
 * Created by zengna on 2016/6/8.
 */
public class ReportImageCell extends ReportBaseCell implements RecyclerView.OnItemTouchListener, ReportImageAdapter.ImageDragListener {

    private static final String LOG_TAG = "ReportImageCell";

    private TextView mNotifyView;
    private RecyclerView mImageContainer;
    private ReportImageAdapter mAdapter;
    private GridLayoutManager mLayoutManager;
    private DragManager dragManager;
    private final PointF dragTouchPoint = new PointF();

    private MedicalExamination mPatientExamination;
    private DownloadResult mDownloadResult;
    private ImageListener mImageListener;
    private GestureDetector mGestureDetector;

    public ReportImageCell(Context context) {
        this(context, null);
    }

    public ReportImageCell(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ReportImageCell(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        setupViews(context);
        init(context);
    }

    private void setupViews(Context context) {

        setTitle(R.string.report_examination_image);
        setButtonText(R.string.finish);
        setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mAdapter.swi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值