博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Smartisan OS一步之自定义拖拽内容
阅读量:5803 次
发布时间:2019-06-18

本文共 3309 字,大约阅读时间需要 11 分钟。

OneStepDemo

Github地址:

这是一个适配Smartisan OS一步Demo,实现文字、链接、单图、多图拖拽功能,打破应用边界,操作更便捷。

This is a one-step demo for Smartisan OS. It implements text, link, single-picture, multi-picture drag and drop functions, breaks application boundaries and makes operation more convenient.

软件截图

Demo视频演示

使用教程

1、初始化OneStepHelper

将 添加到你的项目 /libs 目录下,添加依赖并同步

2、初始化OneStepHelper
OneStepHelper mOneStepHelper = OneStepHelper.getInstance(OnestepDragActivity.this);复制代码
3、设置view长按事件,在onLongClick中设置拖拽
views[i].setOnLongClickListener(this);复制代码
@Overridepublic boolean onLongClick(View view){    switch (view.getId()){       case R.id.txt_link_style:       //链接类型       if (mOneStepHelper.isOneStepShowing()){           mOneStepHelper.dragLink(view, mBinding.txtLinkStyle.getText().toString().trim());       }       break;}复制代码

基础API:

1、文字类型
mOneStepHelper.dragText(View view, CharSequence text)复制代码
2、链接类型
mOneStepHelper.dragLink(View view, CharSequence link)复制代码
3、单图类型
mOneStepHelper.dragImage(View view, File file, String mimeType)复制代码
4、多图类型
mOneStepHelper.dragMultipleImages(View view, File[] files, String[] mimeTypes)复制代码
5、文件类型
mOneStepHelper.dragFile(View view, File file, String mimeType, String displayname)复制代码

高级自定义API:

1、文字类型自定义拖拽缩略图
mOneStepHelper.dragText(View view, CharSequence text, Bitmap background, Bitmap content, Bitmap avatar)复制代码
2、文件类型自定义拖拽缩略图
mOneStepHelper.dragFile(View view, File file, String mimeType, Bitmap background, Bitmap content, Bitmap avatar)复制代码
3、单图类型自定义拖拽缩略图
mOneStepHelper.dragImage(View view, Bitmap content, File file, String mimeType)复制代码
4、自定义气泡显示位置
mOneStepHelper.showDragPopupText(View view, OnDragListener dragListener, String content, int x, int y)复制代码

注意事项:

1、进行图片拖拽、文件拖拽时,请在AndroidManifest.xml申请权限
复制代码
2、进行图片拖拽分享时,请先将图片保存到本地 , 测试保存代码示例:
/** * 保存目录 */private static final String SAMPLE_FILE_DIR        = Environment.getExternalStorageDirectory() + "/OneStepDemo/";/** * 创建文件 * @param filename 文件名称 * @return */private File createTestFileIfNotExists(String filename){    File testFile = new File(SAMPLE_FILE_DIR, filename);    if (!testFile.exists())    {        try        {            testFile.createNewFile();        } catch (IOException e)        {            e.printStackTrace();        }    }    return testFile;}复制代码
/** * 将图片从assets中拷贝到sd卡中 * @param assetFile 文件 * @return */private void copyAssetFile2Sdcard(String assetFile){    InputStream inputStream = null;    OutputStream outputStream = null;    try    {        inputStream = getAssets().open(assetFile);        String destFilePath = createTestFileIfNotExists(assetFile).getAbsolutePath();        File f = new File(destFilePath);        outputStream = new FileOutputStream(f);        byte[] buf = new byte[1024 * 4];        int len = 0;        while ((len = inputStream.read(buf)) > 0)        {            outputStream.write(buf, 0, len);        }        outputStream.flush();    } catch (IOException e)    {        e.printStackTrace();    } finally    {        try        {            if (outputStream != null)            {                outputStream.close();            }            if (inputStream != null)            {                inputStream.close();            }        } catch (IOException e)        {            e.printStackTrace();        }    }}复制代码

TODO

  • [ ] 接收拖拽的图片、文字、链接、文件;

项目Github地址:

官方GITHUB主页:

转载地址:http://ngrfx.baihongyu.com/

你可能感兴趣的文章
Mysql 忘密码 + Phpadmin 修改密码无法登陆
查看>>
【思想空间·毁灭人类的十件事】
查看>>
Firebug入门指南(转)
查看>>
db4o数据库存放的class含有相同的字段名且字段的类型也相同。现在想把这个库中数据读出来,但总是报 java.lang.ClassCastException错误...
查看>>
iOS开发那些事儿(七)Http状态码汇总
查看>>
Java实现链式存储的二叉查找树(递归方法)
查看>>
Dexter 6.0+ 运行权限
查看>>
[javaSE] 基本数据类型对象包装类
查看>>
[android] android项目架构
查看>>
Apache Lucene初探
查看>>
权限控制方案之——基于URL拦截
查看>>
解决ICS40上设置APN无权限问题
查看>>
JSP相关知识三
查看>>
Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和区别
查看>>
Oracle常用日期函数
查看>>
第六章 软件项目成本计划
查看>>
理解Linux系统负荷
查看>>
视频图像大小格式汇总
查看>>
(1)Spring框架的了解
查看>>
【转】正则表达式之数字验证
查看>>