private void deleteImage(String imgPath) {
ContentResolver resolver = getContentResolver();
Cursor cursor = MediaStore.Images.Media.query(resolver, MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Images.Media._ID}, MediaStore.Images.Media.DATA + "=?",
new String[]{imgPath}, null);
boolean result = false;
Uri uri = null;
if (cursor.moveToFirst()) {
long id = cursor.getLong(0);
Uri contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
uri = ContentUris.withAppendedId(contentUri, id);
int count = getContentResolver().delete(uri, null, null);
result = count == 1;
} else { Cursor cursor2 = MediaStore.Images.Media.query(resolver, MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Images.Media._ID}, MediaStore.Images.Media.DATA + "=?",
new String[]{imgPath}, null);
if (cursor2.moveToFirst()) {
long id = cursor2.getLong(0);
Uri contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
uri = ContentUris.withAppendedId(contentUri, id);
int count = getContentResolver().delete(uri, null, null);
result = count == 1;
} }
//更新到图库
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(new File(imgPath)));
sendBroadcast(intent); } Toast工具类
import android.os.Handler;
import android.os.Looper;
import android.view.Gravity;
import android.widget.TextView;
import android.widget.Toast; /**
* <pre>
* 吐司相关工具类
* </pre>
*/
public class ToastUtils { private ToastUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
} private static Toast sToast;
private static Handler sHandler = new Handler(Looper.getMainLooper());
private static boolean isJumpWhenMore; /**
* 吐司初始化
*
* @param isJumpWhenMore 当连续弹出吐司时,是要弹出新吐司还是只修改文本内容
* <p>{@code true}: 弹出新吐司<br>{@code false}: 只修改文本内容</p>
* <p>如果为{@code false}的话可用来做显示任意时长的吐司</p>
*/
public static void init(boolean isJumpWhenMore) {
ToastUtils.isJumpWhenMore = isJumpWhenMore;
} /**
* 安全地显示短时吐司
*
* @param text 文本
*/
public static void showShortToastSafe(final CharSequence text) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(text, Toast.LENGTH_SHORT);
}
});
} /**
* 安全地显示短时吐司
*
* @param resId 资源Id
*/
public static void showShortToastSafe(final int resId) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(resId, Toast.LENGTH_SHORT);
}
});
} /**
* 安全地显示短时吐司
*
* @param resId 资源Id
* @param args 参数
*/
public static void showShortToastSafe(final int resId, final Object... args) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(resId, Toast.LENGTH_SHORT, args);
}
});
} /**
* 安全地显示短时吐司
*
* @param format 格式
* @param args 参数
*/
public static void showShortToastSafe(final String format, final Object... args) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(format, Toast.LENGTH_SHORT, args);
}
});
} /**
* 安全地显示长时吐司
*
* @param text 文本
*/
public static void showLongToastSafe(final CharSequence text) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(text, Toast.LENGTH_LONG);
}
});
} /**
* 安全地显示长时吐司
*
* @param resId 资源Id
*/
public static void showLongToastSafe(final int resId) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(resId, Toast.LENGTH_LONG);
}
});
} /**
* 安全地显示长时吐司
*
* @param resId 资源Id
* @param args 参数
*/
public static void showLongToastSafe(final int resId, final Object... args) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(resId, Toast.LENGTH_LONG, args);
}
});
} /**
* 安全地显示长时吐司
*
* @param format 格式
* @param args 参数
*/
public static void showLongToastSafe(final String format, final Object... args) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(format, Toast.LENGTH_LONG, args);
}
});
} /**
* 显示短时吐司
*
* @param text 文本
*/
public static void showShortToast(CharSequence text) {
showToast(text, Toast.LENGTH_SHORT);
} /**
* 显示短时吐司
*
* @param resId 资源Id
*/
public static void showShortToast(int resId) {
showToast(resId, Toast.LENGTH_SHORT);
} /**
* 显示短时吐司
*
* @param resId 资源Id
* @param args 参数
*/
public static void showShortToast(int resId, Object... args) {
showToast(resId, Toast.LENGTH_SHORT, args);
} /**
* 显示短时吐司
*
* @param format 格式
* @param args 参数
*/
public static void showShortToast(String format, Object... args) {
showToast(format, Toast.LENGTH_SHORT, args);
} /**
* 显示长时吐司
*
* @param text 文本
*/
public static void showLongToast(CharSequence text) {
showToast(text, Toast.LENGTH_LONG);
} /**
* 显示长时吐司
*
* @param resId 资源Id
*/
public static void showLongToast(int resId) {
showToast(resId, Toast.LENGTH_LONG);
} /**
* 显示长时吐司
*
* @param resId 资源Id
* @param args 参数
*/
public static void showLongToast(int resId, Object... args) {
showToast(resId, Toast.LENGTH_LONG, args);
} /**
* 显示长时吐司
*
* @param format 格式
* @param args 参数
*/
public static void showLongToast(String format, Object... args) {
showToast(format, Toast.LENGTH_LONG, args);
} /**
* 显示吐司
*
* @param text 文本
* @param duration 显示时长
*/
private static void showToast(CharSequence text, int duration) {
if (isJumpWhenMore) cancelToast();
if (sToast == null) {
sToast = Toast.makeText(Utils.getContext(), text, duration);
TextView tv = (TextView) sToast.getView().findViewById(android.R.id.message);
tv.setTextSize(17);
sToast.setGravity(Gravity.CENTER,0,0);
} else {
sToast.setText(text);
sToast.setDuration(duration);
}
sToast.show();
} /**
* 显示吐司
*
* @param resId 资源Id
* @param duration 显示时长
*/
private static void showToast(int resId, int duration) {
showToast(Utils.getContext().getResources().getText(resId).toString(), duration);
} /**
* 显示吐司
*
* @param resId 资源Id
* @param duration 显示时长
* @param args 参数
*/
private static void showToast(int resId, int duration, Object... args) {
showToast(String.format(Utils.getString(resId), args), duration);
} /**
* 显示吐司
*
* @param format 格式
* @param duration 显示时长
* @param args 参数
*/
private static void showToast(String format, int duration, Object... args) {
showToast(String.format(format, args), duration);
} /**
* 取消吐司显示
*/
public static void cancelToast() {
if (sToast != null) {
sToast.cancel();
sToast = null;
}
}
}

android 删除相册图片并同步到图库的更多相关文章

  1. Android的缓存图片不在系统图库中显示的解决办法

    Android的图库会在开机的时候扫描SD卡中的图片,视频等文件,有很多App的私有图片不想在图库中显示,就需要另外处理了. 解决办法:在缓存图片的文件夹中创建 .nomedia 文件. 1. &qu ...

  2. Android获取相册图片

    1. AlertDialog的使用 2. 显示和隐式意图的区别 3. 相册页面的跳转 4. 选择完成后返回图片的获取 ----------------------------------------- ...

  3. 【Android】内存卡图片读取器,图库app

    上一篇<[Android]读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示>(点击打开链接)在真机上測试非常有问题.常常遇到内存溢出.卡死的情况.由于如今真机上的内存上,2G ...

  4. Android显示相册图片和相机拍照

    首先看最重要的MainActive类: public class MainActivity extends AppCompatActivity { private final int FROM_ALB ...

  5. android 系统相册调用,各版本的区别总结

    请求系统相册有三个Action: (注意以下  图库(缩略图)   和  图片(原图)  的区别) ACTION_OPEN_DOCUMENT    仅限4.4或以上使用  默认打开原图 ACTION_ ...

  6. Android调用相册拍照控件实现系统控件缩放切割图片

    android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果 今天写了一个demo分享给大家 package cn.m15.test; import java.io.By ...

  7. android开发之——获取相册图片和路径

    Android开发获取相册图片的方式网上有很多种,这里说一个Android4.4后的方法,因为版本越高,一些老的api就会被弃用,新的api和老的api不兼容,导致出现很多问题. 比如:managed ...

  8. Android从相册中获取图片以及路径

    首先是相册图片的获取: private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; ...

  9. android——拍照,相册图片剪切其实就这么简单

    接触android这么久了.还没有真正的浩浩看看android拍照,相册图片剪切到底是怎么回事,每次都是从别人的代码一扣,就过来了.其实,谷歌提供的API已经很强大.只需要用的好,就那么几句就可以搞定 ...

随机推荐

  1. MySQL slave_exec_mode 参数说明

    背景: 今天无意当中看到参数slave_exec_mode,从手册里的说明看出该参数和MySQL复制相关,是可以动态修改的变量,默认是STRICT模式(严格模式),可选值有IDEMPOTENT模式(幂 ...

  2. Nginx均衡TCP协议服务器案例

    Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80.8080.8081等服务.因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢? 默认nginx不 ...

  3. Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示

    基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...

  4. sqlserver2005公布与订阅配置步骤

    1,新建公布 前提条件:第一要调通网络,在sqlserver configuration manager 中选择mssqlserver的协议把named pipes改为启用.第二要建立一个目录D:\b ...

  5. 发红包android

    立即春节,写个应景的控件         思路分析 1.红包沿着不同的轨迹由上往下运动 2.当手指捕获到一个红包,红包停止原先的运动,能够随着手指的滑动做跟手操作 3.当手指动作停止后,红包放大 4. ...

  6. C# 文件去仅仅读工具-线程-技术&amp;分享

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 八.利用springAMQP实现异步消息队列的日志管理

    经过前段时间的学习和铺垫,已经对spring amqp有了大概的了解.俗话说学以致用,今天就利用springAMQP来完成一个日志管理模块.大概的需求是这样的:系统中有很多地方需要记录操作日志,比如登 ...

  8. rabbitmq配置镜像模式

    学习是spring cloud的时候用到了rabbitmq,在实际项目中也用到了,镜像模式是集群的基础上面配置的,就多了一个数据同步,rabbitmq存储消息用的是cookie,配置之前先同步cook ...

  9. CSS3渐变相关

    背景渐变 background: -moz-linear-gradient( top,#f24652,#da2c3c); background: -o-linear-gradient(top,#f24 ...

  10. 【二十四】使用mysqli扩展类批量执行多条sql语句

    批量处理多个sql语句 <?php //批量执行多个dml语句 // $mysqli=new mysqli("localhost","root",&quo ...