android只绘制一部分图片的解决方法

Android绘制圆形图片的方法总结 在需求开发中经常会遇到需要显示圆形图片的情况,比如我们经常见到的用户圆形头像。为了实现这个效果,我们需要重新定义View,通过重写onDraw方法来使得我们的View显示成圆形。我发现主要有三种方式可以实现这个功能。使用Xfermode 相交模式什么是相交模式?正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint;如果它是 阅读详情

两种方法:

  1. canvas.drawBitmap(mBitmap, mSrcRect, mDestRect, mBitPaint);

  2. canvas.clipRect

package com.abilix.learn.dashpinyinisland1.view;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.view.View;

import com.abilix.learn.dashpinyinisland1.R;


/**
 * yhd
 * 17.7.14
 */

public class DrawBitmapView extends View {
    private Resources mResources;
    private Paint mBitPaint;
    private Bitmap mBitmap;
    private Rect mSrcRect, mDestRect;

    // view 的宽高
    private int mTotalWidth, mTotalHeight;
    private int mBitWidth;
    private int mBitHeight;

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

    public DrawBitmapView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mResources = getResources();
        initBitmap();
        initPaint();
    }

    public DrawBitmapView(Context context, AttributeSet attrs, int defStyleAttr) {
        this(context, attrs);
    }

    private void initPaint() {
        mBitPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mBitPaint.setFilterBitmap(true);
        mBitPaint.setDither(true);
    }

    private void initBitmap() {
        mBitmap = ((BitmapDrawable) mResources.getDrawable(R.mipmap.sv_background_bright)).getBitmap();
        mBitWidth = mBitmap.getWidth();
        mBitHeight = mBitmap.getHeight();

        //方法一:选择绘画区域为下半图  选择绘画内容为下半图
        mSrcRect = new Rect(0, mBitHeight / 2, mBitWidth, mBitHeight);
        mDestRect = new Rect(0, mBitHeight / 2, mBitWidth, mBitHeight);


    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        //方法一:绘制
//        canvas.drawBitmap(mBitmap, mSrcRect, mDestRect, mBitPaint);

        //方法二:裁剪
        canvas.clipRect(0, mBitHeight/2, mBitWidth, mBitHeight);
        canvas.drawBitmap(mBitmap, 0, 0, mBitPaint);

    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        mTotalWidth = w;
        mTotalHeight = h;
    }
}
Android安卓 + webview + vue 实现图片上传 前提:需要首先实现web端的网页上传图片(只要网页上传图片成功,后续集成和android部分的相关操作,就可以成功实现图片上传) 步骤: web端实现网页上传 web嵌入安卓webview实现安卓手机拍照和选择图片上传 问题: 对安卓开发不太了解的web开发小伙伴,需要粗略的了解一下安卓开发的一些基本内容,这一步需要自己去适当的学习,如果这一步没有,那就不用往下看了 图片上传和拍照上传,需要的一些权限 高安卓版本的手机拍照上传,需要进行的额外操作 web端实现网页上传的代码这边就不赘述了,需要了 阅读详情

相关推荐

Unity+Android:处理安卓上面图片模糊

目录 1.目的 1.1 想:处理安卓上面图片模糊 2.参考 2.1Unity3D 场景中图片模糊问题 3.操作 3.1 操作一:待检测 3.1.1 版本 3.1.1 修改项目质量Quality等级 3.1.1 修改Texture属性 1.目的 1.1 想:处理安卓上面图片模糊 2.参考 2.1Unity3D 场景中图片模糊问题 https://blog.youkuaiyun.com/qq_44884706/article/details/89467241 待检测 3.操作..

qq_40544338的博客 1725

Canvas.drawText绘制文字为什么会偏上?

如果你经常使用Canvas的draw***方法去绘制一些图像图形,你会知道绘制的时候坐标是从Canvas左上角开始计算的,如果想要把一个图像放到某个位置,直接drawBitmap传递图片左上角的坐标就行了。 那drawText就不一样了,如果你传递进去字符串,会发现文字的位置和你指定的不一样。 卧槽为啥。Android的文档也没有仔细说,打开源码一看,又跑到native代码里去执行了。

niansiqiao的专栏 1637

关于安卓图库更新的问题终极解决方法(实测)

首先,有很多需求,我们要在应用中使用拍照,保存图片等功能,特别是需要自定义相册,或者从 布局控件中保存图片到本地相册的时候,及时更新相册就成了我们的问题。 首先,先来介绍几种能用的方法(以下代码作者都实测过) 第一种,比较远古的通过广播刷新图库 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("fi

CSAanan的博客 1万+

微信小程序 canvas 绘图方法及安卓手机出现绘图不准解决方案

微信小程序的canvas诟病颇多,直到调试及出库 2.2.0 版本依然如此。 1. 微信 canvas 绘制也是一个异步函数,在 ctx.draw() 后面直接获取 canvasToTempPath 是不能获取到 canvas 的具体内容的。 2. 微信小程序有很多 bug,尤其在布局上,例如 z-index 无效,定位问题,拖动问题等;因此在界面上展示 canvas 绘制的内容时,通常使用 ...

Hellogen 1万+

用draw9patch.bat绘制的气泡图片用在Android程序中有黑线,怎么解决?

用draw9patch.bat绘制的气泡图片用在Android程序中有黑线,怎么解决?

rock4you 2572

Android过度绘制深度优化---View提前绘制

原理介绍:上一篇文章对过度绘制和View优化做了大概的简介和介绍。我们知道,引起过度绘制的根本原因是 背景(背景包裹背景图片、颜色、形状、边框等等)。那么通常你在网络查找过度绘制优化策略,不外乎减少View的层叠、多余的控件、一个多余的背景设置等等。可如果你真的去审查代码,会发现你并没有多少可优化的地方。这个时候,你就需要 Android过度绘制深度优化—View提前绘制先说原理:不做处理的V

u010255127的专栏 7488

android绘图之Canvas和Bitmap结合

Rect和RectF Matrix Canvas Bitmap

折翅鵬的博客 5421

Librepilot _64位window10环境下的搭建及一些坑的解决办法

  刚入IT行业的小菜鸟,在window上折腾了四天的librepilot地面控制站的搭建,想着这么辛苦不能白费了,看网上相关资料少得可怜,唯一一个详细教程还是在32位环境下,一大堆坑,所以把自己的经验写下来,供大家一起参考。 参考的原文是:https://www.cnblogs.com/jasonchan1202/p/7809937.html的博客,但是执行下来才发现这个博客对64位系统极其不...

weixin_41426339的博客 2726

canvas绘制不完全的原因

在使用canvas进行绘制的时候,有时候会发现canvas绘制了一半,这是因为什么呢?各位看官继续往下看在使用canvas进行绘制的时候会先创建一个canvas元素,在不给这个canvas元素设置尺寸的时候,默认的宽高是(300,150)这是通过canvas绘制一个400*300的矩形的时候就会出现绘制不完全的情况这是因为canvas绘制的矩形超出了canvas元素,也就是画布的范围。

weixin_65565362的博客 1720

Fofa API高阶玩法:用Python批量获取漏洞资产(含OA系统扫描实战)

本文详细介绍了如何利用Python结合Fofa API实现自动化漏洞资产收集的高阶实战技巧。通过构建健壮的客户端、设计精准查询语法、实现多线程批量采集,并以OA系统漏洞扫描为例,演示了从资产发现、过滤验证到报告生成的全流程,旨在提升安全运维与应急响应的效率。

weixin_28607671的博客 495

集成电路设计学习笔记(二)基于IC617反相器设计之原理图绘制

博主的博客网站 欢迎大家访问! ccbirds.cn ccbirds.github.io 本文主要记录在IC617中原理图的绘制和schematic的使用方法。 新建library 要画设计自己的集成电路,需要建一个自己的库,方便对自己设计文件的管理。 打开library manager,file 下NEW下Library 选择库的保存路径,一般默认即可,并在name中填入自己库的名字。...

ccbirds 7371

Android 重绘 View

此刻打盹,你将做梦;而此刻学习,你将圆梦。 今天我们来学习如何重绘View! 所谓的重绘就是重新绘制他的外观(样式),既然要重新绘制,那么首先需要继承 View 类。 extends View 首先,新建一个android项目,我们定义一个类,并继承 View,类名叫:DrawView:public class DrawView extends View { public DrawVie

新猿的博客 1090

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 523

安卓微信中长按base64图片无法保存的解决办法

遇到的问题:后端返回的是base64格式的图片,前端拿到返回体后进行拼接展示在img标签上,微信长按图片进行保存,发现苹果长按保存成功,安卓长按保存后相册中保存的图片时黑色的(且提示格式损坏) this.imgUrl = "data:image/jpeg;base64," + res.content.base64_image; <div class="img-box" ref="imageTofile"> <img :src="imgUrl" alt="

qp66797的博客 3528

【AI大模型:前沿】41、建筑行业大模型创业全指南:从技术突破到成本控制与落地路径

建筑行业大模型是“高门槛、高回报”的长周期赛道,适合有建筑行业资源+AI技术背景的团队切入。数据是基础,场景切割是策略,合规是底线。通过聚焦“设计生成+规范审查”等刚需场景,用“仿真数据+开源模型”降低成本,3-5年内有望成长为行业独角兽。对于中小团队,避开千万级全流程模型的红海,深耕“小而美”的单点工具,同样能实现盈利与快速扩张。关键成功公式建筑AI创业 = 50%数据壁垒构建 + 30%场景精准切入 + 20%成本控制能力。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 2114

【雕爷学编程】Arduino智慧交通之RF24通信实现车队之间的实时通信和协调

通过这些示例,车队领导可以发送指令给车队成员,车队成员可以接收指令并执行相应的操作,同时车队成员也可以发送自己的位置信息给车队领导或其他成员,以实现车队之间的实时通信和协调。例如,在高速公路上,车队中的车辆可以根据前方车辆的速度和位置信息,自动调整自身的速度和距离,以保持车队的整体稳定和安全。Arduino智慧交通系统利用RF24通信模块实现车队之间的实时通信和协调,通过无线通信技术,车辆之间可以实时传输数据和指令,以实现车队的协同行驶和交通优化。通过数据处理和分析,可以生成实时的交通信息和统计数据。

雕爷学编程 1074

android 图片字体涂鸦,android 实现在照片上绘制涂鸦的方法

这个应该是简易版的美图秀秀(小伙伴们吐槽:你这也叫简易版的??我们看着怎么不像啊……)。好吧,只是在图片上绘制涂鸦,然后保存。一、选择图片这个道长有必要说一下,在绘制涂鸦时,笔画会根据设置ImageView的大小和屏幕的尺寸(不是像素)产生误差。这个道长暂时还没有找到解决方法,只是规避了一下。把ImageView设置为全屏,布局文件代码如下xmlns:tools="http://schemas.a...

weixin_30780097的博客 740

Android驱动工程师职位(侧重于Bringup、外设驱动调试、芯片平台经验)

本文摘要:深圳泓京纬科技招聘Android驱动工程师,要求具备Bootloader/LK/Linux Bringup经验,熟悉LPDDR/eMMC/UFS等存储设备调试。文章详细解析了Android系统架构、Linux驱动开发核心概念、设备树作用、串口调试方法等基础知识。重点介绍了存储驱动架构、性能优化和故障排查技巧,包括eMMC识别问题、UFS性能优化、NAND ECC错误处理等实战场景。同时涵盖芯片平台开发经验、跨部门协作调试方法,以及低温环境等特殊场景的问题解决方案。

郑伟强dev的专栏 247

AndroidStudio如何导入图片以及在drawable里放图片报错的解决方法

1.AndroidStudio如何导入图片 直接将图片复制粘贴到drawable文件夹,然后直接用就可以了 drawable路径:project名\app\src\main\res\drawable 2.AndroidStudio在drawable里放图片报错的解决方法 比如我上一个关于掌上微博的登陆页面,当我把background设置为颜色代码,就可以正常运行 但是一旦在drawable加...

weibalabala的博客 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓图片适配

接着上一篇安卓适配详解之后,本篇文章介绍一下图片的适配,大致分为两个部分: deawable 文件适配 .9图片的使用 drawable 首先根据设备的dpi建立相应的文件夹,放置不同大小的图片,如下图: 这里可以看出随着手机dpi的升高,根dpi可大致分为mdpi,hdpi,xhdpi,xxhdpi,xxxdpi文件夹,按照安卓官方的适配建议需要每个文件夹中都放置相对应的图片,这牙膏一个图片就会

浅谈Android 5554

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android 安卓保存图片到手机相册并且解决图片发黄问题

最近在研究怎么将安卓应用中的图片保存到手机相册。 并且解决有一些手机保存图片到相册会出现发黄的问题。 如果要保存图片先在manifest中开启读写权限。   &lt;!-- 在SDCard中创建与删除文件权限 --&gt; &lt;uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /&g...

weixin_40780294的博客 1323

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

小程序Canvas绘制图片太大,自动闪退,安卓会有crash问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34234829的博客 3734

Android Studio中.9图片的含义及制作教程

一、9patch图片的概念 1、9patch图片是andriod app开发里一种特殊的图片形式,文件的扩展名为:.9.png 2、9patch图片的作用就是在图片拉伸的时候保证其不会失真。所以我们使用.9图片,让图片在指定的位置拉伸和在指定的位置显示内容,这样图片的边边角角就不会出现失真了。 二、使用.9图片和不使用的差异 1、9patch和一般图片的区别在于.9图片有四条黑边,而一般的图片没有,这四条黑边就是用来拉伸和指定显示位置的。 2、使用.9图片后,整个图片应该是包裹着你想要显示的内容的,而

JHC的博客 30万+

安卓19:Android studio图片适配问题,解决图片缩放现象

mipmap: 采用Android Studio开发Android APP,在项目的res目录下,会出现以mipmap开头的文件夹。mipmap只有这几个密度文件,不需要新建! 根据Android官方的描述,mipmap仅仅用于存放APP启动图标,可由Image Asset Studio生成。Image Asset Studio会生成mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi五种尺寸的图标。各种密度下的图标建议尺寸为 密度 建议尺寸 mdpi 48*48 hdpi 7

qq_43374694的博客 5278

android 浏览器上传图片,Android 开发 使用WebUploader解决安卓微信浏览器上传图片中遇到的bug...

先给大家分析下微信浏览器上传图片bug的原因微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器。具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保在安卓机中微信浏览器的成功上传。苹果机型没问题,因为微信的ios客户端使用的是Safari的内核,没有各种坑,且效果最好。这里给出一个 WebUploader 官方关于移动端适配的 iss...

weixin_35907598的博客 789
上一篇: android TextView(5)-TextView一些其他常用效果
下一篇: 17.7.29 随笔
missingcall
博客等级 码龄10年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值