好记性不如烂笔头(零)

好记性不如烂笔头——记录项目过程中的编译错误及解决方法(持续记录中) 记录做项目的时候编译问题,好记性不如烂笔头,下次碰到相同的问题也可以方便查阅 阅读详情

俗话说,好记性不如烂笔头!
在平常的开发工作中,很多时候我们都会用到一些代码量比较小,但是却很有用的功能,但是,都只是写过就算,下一次再想起来用的时候,已经不知道该去哪儿找了。
常常因为这些小点而浪费时间,也随着年纪渐长,智商有限,还是靠记下来,以备不时之需呀。

获取圆形图片

   /**
    * bitmap 要进行剪裁的位图
    * size 剪裁的圆形图片的大小
    */
   public static Bitmap getCroppedRoundBitmap(Bitmap bitmap, int size) {
        if (bitmap == null || bitmap.isRecycled() || size < 0) {
            return null;
        }

        Bitmap result = Bitmap.createBitmap(size, size, Config.ARGB_8888);      
        Canvas canvas = new Canvas(result);
        /* 一般圆是内切于一个正方形的,所以我们要从这张bitmap中找出一个最大的正方形的位置,以长或者宽的长度为正方形的边(哪个短取哪个)*/
        int bmpWidth = bitmap.getWidth();
        int bmpHeight = bitmap.getHeight();
        int x = 0, y = 0;
        if (bmpHeight > bmpWidth) {
            x = 0;
            y = (bmpHeight - bmpWidth) / 2;
        } else if (bmpHeight < bmpWidth) {
            x = (bmpWidth - bmpHeight) / 2;
            y = 0;
        }

        Paint paint = new Paint();
        /*srcRect 是我们要剪截的原图中的某块区域,可以为空,则从0,0,即图的左上角开始,而x,y,则是根据上面代码找出来的点*/
        Rect srcRect = new Rect(x, y, bmpWidth, bmpHeight);
        /*dstRect 是目标正方形的大小*/
        Rect dstRect = new Rect(0, 0, size, size);

        //对于paint的设置是为了要防止出现锯齿,但这种设置,对于如果利用clipPath来画的图像是不起作用的。
        paint.setAntiAlias(true);
        paint.setFilterBitmap(true);
        paint.setDither(true);
        canvas.drawARGB(0, 0, 0, 0);
        canvas.drawCircle(size / 2, size / 2, size / 2, paint);
        /*利用Xfermode的SRC_IN,则只绘制原图bitmap在圆圈中的区域,从而获取圆形切图*/
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(bitmap, srcRect, dstRect, paint);

        return result;
    }

获取系统方向(旋转)是否锁定

    private static final int DEFAULT_ACCELEROMETER_ROTATION = -1;
    int lock = Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION,
                DEFAULT_ACCELEROMETER_ROTATION);
    if (lock == 1) {
        mTvOrientationLock.setText("Unlocked");
    } else {
        // rotation is Locked
        mTvOrientationLock.setText("Locked");
    }

遇到这种与系统设置相关的配置信息时,我们应该先去Settings等系统类中去找一下,然后有针对性地利用关键字进行搜索,效果会好很多。

从URI中获取图片的地址

   private static String getRealPathFromURI(Context context, Uri contentURI) {
        String result = "";
        Cursor cursor = context.getContentResolver().query(contentURI, null, null, null, null);
        if (cursor == null) {
            result = contentURI.getPath();
        } else { 
            if (cursor.moveToFirst()) {
                int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
                result = cursor.getString(idx);
            }
            cursor.close();            
        }
        return result;
    }

根据图片路径读取图片的旋转角度

    private static int readPictureDegree(String path) {
        int degree = 0;
        try {
            ExifInterface exifInterface = new ExifInterface(path);
            int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,
                    ExifInterface.ORIENTATION_NORMAL);
            switch (orientation) {
            case ExifInterface.ORIENTATION_ROTATE_90:
                degree = 90;
                break;
            case ExifInterface.ORIENTATION_ROTATE_180:
                degree = 180;
                break;
            case ExifInterface.ORIENTATION_ROTATE_270:
                degree = 270;
                break;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return degree;
    }
AVM环视算法实战:从3D碗型投影到多场景模式切换的实现与优化 本文深入探讨了AVM环视算法在3D碗型投影和多场景模式切换中的实现与优化。通过分析3D碗型投影的核心原理和动态视角调节技术,展示了如何实现从超广角模式到转向模式的无缝切换。文章还分享了性能优化实战经验,包括实时性提升和图像拼接质量优化,为开发者提供了宝贵的AVM系统开发指南。 阅读详情

相关推荐

stm32cubeMX使用HAL库点亮LED流水灯

目录

weixin_46129506的博客 3797

好记性不如烂笔头——Vue3.0篇

大家好,我是“前端点线面”,一位新生代农民工,欢迎关注我获取最新前端知识和大量思维导图(“百题斩”获取《前端百题斩》pdf版;分别回复“go、React、操作系统、Linux、设计模式、j...

wang_yu_shun的博客 3372

手把手拆解DGX GB200 NVL72:1个机柜如何塞进72块GPU?详解NVLink Switch铜缆背板设计

本文深度解析英伟达DGX GB200 NVL72系统如何通过NVLink Switch铜缆背板设计,在标准42U机柜中集成72块B200 GPU,实现1800GB/s的超高带宽。文章详细介绍了模块化架构、铜缆互连技术、液冷散热方案和高密度供电系统等核心创新,为AI算力需求提供突破性解决方案。

red88的博客 1580

好记性不如烂笔头——Vuex篇

大家好,我是“前端点线面”,一位新生代农民工,欢迎关注我获取最新前端知识和大量思维导图(“百题斩”获取《前端百题斩》pdf版;分别回复“go、React、操作系统、Linux、设计模式、j...

wang_yu_shun的博客 5024

本地Qwen + ComfyUI 制作AI漫剧完整保姆级教程(2026年3月最新版)

本文介绍了一个零成本、本地化AI漫剧制作方案,整合Qwen大模型和ComfyUI工作流。Qwen负责剧本创作、分镜设计和提示词生成,ComfyUI处理图像生成、角色一致性保持和动态视频制作。该方案支持8GB显存设备运行(推荐12GB),包含详细安装指南和完整制作流程:从Ollama安装Qwen模型,到ComfyUI配置及必备节点安装,再到分镜生成、角色固定、批量出图和视频合成。文章还提供了常见问题解决方案和优化技巧,全流程1-2小时即可完成3分钟竖屏漫剧制作,适合新手和日更创作者。

posstos的博客 5543

VTK四视图联动避坑指南:解决vtkImagePlaneWidget窗宽窗位同步与切片序号更新的那些坑

本文详细解析了VTK四视图联动开发中的关键技术点与常见问题,包括切片位置同步、窗宽窗位同步的实现原理及回调机制设计。针对开发中遇到的回调事件不触发、渲染性能低下等问题,提供了实用的解决方案和优化技巧,帮助开发者高效构建医学影像和科学可视化应用。

weixin_42638178的博客 391

好记性不如烂笔头

目录 1、SQL Server使用“like”关键字模糊查询时,特殊字符需要转义 2、.net调用java的WebService时,输入参数无法传递值始终为null的问题 3、.net中MVC项目数据库迁移命令 4、WinForm中DataGridView不显示横向滚动条 5、CSS改变窗体大小div没有水平平铺导致出现白色背景问题 1、SQL Server使用“like”关键字模糊查询时,特殊字符需要转义 SQL Server执行sql时,如果使用“like”关键字进行模糊查询,则一些特殊字

yinshengchen的博客 3233

CTF-MISC:BUUCTF练习汇总(1-25题,不包括签到题)

解题思路:该题比较基础,wireshark打开过滤HTTP流量包,追踪HTTP流后可以看到base64密文,解密后得到jpg图片,打开图片即可看到flag,在线OCR识别即可提取出flag值。解题思路:zip压缩包解压需要密码,图片中的盲文为解压的密码,解压后得到MP3音频文件,内容为典型的摩斯密码;解题思路:由题目可以为LSB隐写,使用StegSolve打开图片查看最低有效位得到PNG信息,另存为图片后发现是二维码,扫描后即可得到flag。对应摩斯电码为:-.-. - …-. .-- .–. . …

燕麦葡萄干的博客 1万+

烂笔头赛过好记性

烂笔头赛过好记性。从0到1的整理,静心、扎实、专注

Irwin_VR的博客 425

MT6771 Android13 背光曲线调试与光感数据校准实战

本文详细介绍了MT6771平台在Android 13系统上进行背光曲线调试与光感数据校准的实战经验。针对高亮度环境下背光误调节问题,深入分析了光感数据上报机制,并提供了驱动层配置修改、背光曲线优化及常见问题解决方案,帮助开发者快速定位并解决类似问题。

moon9的博客 287

本文将详细介绍如何在 Qt (C++) 应用程序中集成 osgEarth,加载三维数字地球,并在指定经纬度添加三维模型(如飞机、建筑等)。

OSG 与 Qt 的交互通常需要处理 OpenGL 上下文。osgEarth 3.x 提供了对 Qt 的较好支持,或者可以使用。在普通 OSG 程序中,你需要手动处理坐标系转换将经纬度转为笛卡尔坐标 (XYZ)。这是实现的关键,将 OSG 的渲染循环集成到 Qt 的事件循环中。第三方库,但在本教程中,我们将展示一种通过继承。,将 Qt 的输入事件转换为 OSG 理解的。事件,这是实现交互(旋转地球、缩放)的基础。来嵌入 OSG 视图的标准方法。在这里我们初始化地球并添加模型。节点简化了这一过程。

qq_45859163的博客 1044

好记性不如烂笔头——C++篇

大家好,我是前端点线面,毕业于华中科技大学,非科班出身的一枚新时代农民工,现在是百度前端研发工程师,著有《前端百题斩》、数十篇学习思维导图(go、React、Redux、Vue、Vuex、...

wang_yu_shun的博客 1008

BLDC控制实验:方波、霍尔、开环、定速、正转

本文记录博主学习BLDC控制软件的过程。 文章目录1 概述2 软件架构及工具链2.1 软件架构2.2 工具链3 底层代码生成3.1 时钟配置3.2 按键输入配置 1 概述 本文是博主第一次做BLDC控制实验,目的仅仅是写代码让BLDC转起来,而暂时不考虑其他复杂的需求。 控制的方法是比较简单的六步换相法。利用电机内部的霍尔传感器,通过参考电机厂家给出的二二导通换相表,生成方波来控制电机。第一次实验为了简化需求,只考虑开环、定速、正转的情况: 开环:不考虑速度反馈,直接给PWM让电机转起来; 定速:不考虑速

u013288925的博客 1万+

好記性不如爛筆頭

好記性不如爛筆頭,對於一個跨過30歲直奔中年的人更是如此. 所以,我決定寫字了.

shidb的博客 90

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

开篇记(好记性不如烂笔头)

  入园两年零三个月,我居然没有一点东西记载下来实在是不应该。   爷爷曾经告诉过我,好记性不如烂笔头。他告诉了我最鲜明的例子。爷爷的脑子一直很好用,记性也是比常人好上一些,当然这也直接导致了爷爷的性格很是高傲。爷爷年轻的时候喜欢舞文弄墨什么的,所以呢每逢人家红白喜事的时候都会去人家及里面瞅上一眼,看看人家送上的喜联或者挽联。有此爱好的还有我的一个另一个宋爷爷,他们经常约好一起的。爷爷...

aa1598877823的博客 231

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

我的第一篇博客,好记性不如烂笔头

我的第一篇博客,好记性不如烂笔头!!

github_34116814的博客 228

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

总结下Promise,好记性不如烂笔头

目录 Promise 的介绍和优点 Promise 对象的用法和状态 使用 Promise 的基本步骤 promise 对象的 3 个状态 Promise 的方法 实例方法 then() catch() finally() 静态方法 Promise.resolve() Promise.reject() Promise.all() Promise.race() 还有些其他的 Promise 链式调用(封装多个接口) 手写promise 几个注意点 Promise ..

果冻 1286

好记性不让烂笔头!oracle学习记录一!

想起小学的时候,我有一同学叫马雷,人特别聪明,除过这个印象之外还有一条,他整天挂在嘴边的一句话,好记性不如烂笔头!大概是我越来越觉得这句话有道理的缘故吧,我对这句话记的越发清楚! 因为在一个公司呆久了,学不到什么东西了,人也麻痹了,觉得趁自己年轻还是换个环境多学一些,于是,我终于迈开了这舍不得的一步,投了一份简历!一份丛庆介绍的工作。 丛庆是我公司以前的一个乙方,比我大两岁,一

u010882595的专栏 672

好记性不如烂笔头之 App widgets(二)

好记性不如烂笔头之 App widgets(一)_禽兽先生不禽兽的博客-优快云博客 之前记录了 AppWidgets 的基本用法,当我的小组件中需要展示集合的时候,发现使用集合的方式也跟普通的 UI 不一样,在此特意也记录一下。 一、显示列表 二、Item 响应点击事件 ...

禽兽先生不禽兽 2685

好記性不如爛筆頭_東波_新浪博客

好記性不如爛筆頭,對於一個跨過30歲直奔中年的人更是如此. 所以,我決定寫字了.

shidb的博客 75

好记性不如烂笔头——Redux篇

大家好,我是“前端点线面”,一位新生代农民工,欢迎关注我获取最新前端知识和大量思维导图(“百题斩”获取《前端百题斩》pdf版;分别回复“go、React、操作系统、Linux、设计模式、j...

wang_yu_shun的博客 234

好记性不如烂笔头-笔记记录方法公开

好记性不如烂笔头!

2633
上一篇: 利用自定义View实现头像截取页面
下一篇: 好记性不如烂笔头(一)
linmiansheng
博客等级 码龄20年 507粉丝 111原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值