• android 删除相册图片并同步到图库


    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;
    }
    }
    }
  • 相关阅读:
    10 行Python代码实现批量压缩图片500 张,面试必学
    用Python邮件发送,新手必学
    用Python监控男女朋友每天都在看哪些网站?这招绝了
    不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据?新手必学
    用Python做一个520表白神器,值得收藏
    微分不等式
    零点问题
    2019英语一 Text4分析
    A1065. A+B and C(64bit)
    A1046. Shortest Distance
  • 原文地址:https://www.cnblogs.com/lzh-Linux/p/7347766.html
Copyright © 2020-2023  润新知