首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

位图otained是透明的,但当设置为imageview时,它将变为非透明

当将位图设置为ImageView时,它可能会变为非透明的。这是因为ImageView默认情况下会对位图进行缩放和裁剪,以适应ImageView的大小。在这个过程中,如果位图的像素格式不支持透明度(例如RGB_565),或者ImageView的背景色不透明,那么位图就会变为非透明。

为了保持位图的透明性,可以采取以下几种方法:

  1. 使用支持透明度的像素格式:在创建位图时,可以使用ARGB_8888像素格式来保持透明度。例如,可以使用Bitmap.Config.ARGB_8888参数来创建位图:Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
  2. 设置ImageView的背景色为透明:可以通过设置ImageView的背景色为透明来保持位图的透明性。例如,在布局文件中可以使用android:background="@android:color/transparent"来设置背景色为透明。
  3. 使用透明的ImageView:如果需要显示透明的位图,可以使用透明的ImageView来展示。可以在布局文件中设置ImageView的背景色为透明,或者使用透明的图片作为ImageView的src属性。

总结起来,为了保持位图的透明性,需要使用支持透明度的像素格式,设置ImageView的背景色为透明,或者使用透明的ImageView来展示位图。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android-Bitmap

位图Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。位图文件是非压缩格式,需要占用较大存储空间。...而当我们通过代码,将这张图片加载进内存,会先解析图片文件本身数据格式,然后还原为位图,也就是 Bitmap 对象,Bitmap 大小取决于像素点数据格式以及分辨率两个因素。...16位图像相比8位图像有较好色彩过渡,更加细腻,携带色彩信息可以更加丰富。其他位类同。 如果一个8位图像有10MB大小,它变成16,大小就要翻一翻变成20MB。其他位类同。...image.png 也就是位于 res 内不同资源目录中图片,加载进内存,会先经过一次分辨率转换,然后再计算大小,转换影响因素设备 dpi 和不同资源目录 其实影响内存还有其他因素...从上面的分析可以得出,如果单从图片本身考虑,优化方向就两个: 降低分辨率 减少图片单位像素点大小 3.1 降低分辨率 降低分辨率也就是我们前面说到ARGB_8888设置ARGB_4444或者ARGB

1.4K20

【Android 应用开发】AndroidUI设计 之 图片浏览器

ImageView常用方法 设置图片 :  -- 设置位图 : setImageBitmap(bitmap), ImageView设置Bitmap位图显示; -- 设置Drawable : setImageDrawable...透明度改变 设置当前透明度 : 设置一个当前透明度值, 初始值255, 255透明, 0完全透明; 透明度改变 : 点击透明度增加按钮时候, 透明度自增20, 如果结果透明度大于255, 那么改透明度强制设置...255; 点击透明度见效按钮时候, 透明度自减20, 透明度小于0时候, 透明度强制设置0; 代码示例 :  //透明度初始值 alpha = 255; //透明度增加 alpha...计算每次自增自减单位值 : 按下缩放按钮时候, 就对ImageView宽高值进行自增自减单位值操作; ImageView设置宽高 : 即设置LayoutParams, 注意LinearLayout.LayoutParams...selector资源, 设置两个item, 一个item状态按下, 显示一个图片, 另一个item状态普通情况下, 显示另一个图片;  selector源码 :  <?

93320
  • Android开发中Bitmap高效加载使用详解

    它代表每个像素点被存储单个透明通道,这对于设置遮罩图片用例十分有用,它不存储颜色信息。 Bitmap.Config RGB_565 这个参数每个像素占用2字节空间。...它代表只有RGB通道编码,其中红色占用5位地址,绿色占用6位地址,蓝色占用5位地址。没有透明通道。 使用不透明位图,不要求高色彩保真度使用此配置不错选择。...当应用需要节省内存(对色彩质量要求低),同时又需要存储透明度信息,这个配置可以作为选择,官方比较推荐用ARGB_8888设置,因为这个色彩质量差。...inSampleSize简介 通过BitmapFactory.Options来缩放图片,主要是用inSampleSize参数,inSampleSize=1,采样后图片图片原始大小,inSampleSize...=2,采样后图片宽,高均为原图大小1/2,而像素数原图1/4,假定图片原有的内存4MB,如果把它inSampleSize设为2,它内存就会变成1MB 具体实现代码如下 public

    95120

    Android各种各样Drawable-更新中

    * 但是在代码中必须要明确指出透明度(Alpha)代表数据, * 如果省略了就表示完全透明颜色,也就是说绘制到画布上,看不出有任何效果。...只需InsetDrawable设置一个insetXxx设置不同 方向边距,然后为设置Dialog背景即可! ?...也就是level大小从0到10000,level0完全不显示,10000完全显示。用Drawable提供setLevel(int level)方法来设置剪切区域。 ?...Level0~10000! Code 在主布局文件中设置一个ImageView,将src设置clipDrawable!...item可供设置属性如下: drawable:引用位图资源,如果空需要有一个Drawable类型子节点 minlevel:level对应最小值 maxlevel:level对应最大值 通过shapeDrawable

    99230

    优化App冷启动,实现启动页错觉秒开

    >WarmStart ——暖启动 比ColdStart稍快,appActivities被销毁,还在内存中常驻启动方式会变为暖启动,app并没有被杀掉,所做只是把app从后台提到前台来展示,并不需要重走初始化一系列行为...>设置true,点击运行app后透明背景,给人一种系统响应慢错觉,完美甩锅。...而我这里在drawable中新建splashx_bg.xml使用bitmap位图设置背景图,能够对图片做更多设置操作。 ?...最后注意:Preview Window设置背景图如果不做处理,图片就会一直存在于内存中,所以,当我们进入到欢迎页时候可不要忘了把背景图设置空 ? 透明背景: ?...透明背景 位图bitmap加载: ? 位图bitmap 直接设置图片: ?

    1.9K30

    自定义圆形图片

    那么这里学习一下简单制作圆形图片,主要运用 BitmapShader 类知识来实现 一、首先,了解一下 BitmapShader 类 BitmapShaderShader子类,可以通过Paint.setShader...使用这个类目的,就是把它对象设置给Paint ,而Paint会根据TileMode进行绘制位图 二、实现圆形图片步骤 首先,ImageView和ImageButton需要图片, 有两种生成圆形图片方法...1、自定义View继承ImageView、ImageButton 2、imageView.setXXX(); 看下ImageView设置图片方法: 1 ImageView imageView = new...,长宽最小边半径画圆,将Bitmap填充到圆中 canvas.drawCircle(width/2,height/2,radiu,paint); } //设置透明度...//设置透明度 39 @Override 40 public void setAlpha(int i) { 41 paint.setAlpha(i); 42 }

    1.9K80

    高频面试点:Android性能优化之内存优化(下篇)

    此外,还有entryRemoved方法,一个缓存对象被丢弃时调用方法,第一个参数true:表明环处对象是为了腾出空间而被清理。...红色、绿色、蓝色和透明通道各8bit,即使没有透明通道图片,如JEPG隔世没有透明通道然后会处理成32bit位图,这样分配32bit中8bit透明通道数据没有任何用处,这完全没有必要...下面,我总结了减少内存开销几种常用方式,如下所示: 1、设置位图规格:显示小图片或对图片质量要求不高可以考虑使用RGB_565,用户头像或圆角图片一般可以尝试ARGB_4444。...,inDensity和inTargetDensity实现更细缩放图片:inScaled设置true,系统会按照现有的密度来划分目标密度,代码如下所示: BitampFactory.Options...获取资源图片大小,需要设置位图对象inJustDecodeBounds值true,然后继续解码图片文件,这样才能生产图片宽高数据,并允许继续优化图片。

    59830

    iOS开发CoreGraphics核心图形框架之二——深入理解图形上下文

    CGSize size); //方法同上,其中opaque参数设置是否透明 scale设置缩放因子 UIKIT_EXTERN void UIGraphicsBeginImageContextWithOptions...[super viewDidLoad]; //创建位图图形上下文 设置大小200*200 UIGraphicsBeginImageContext(CGSizeMake(200, 200...可以设置一个信息字典,这个字典中常用可以进行配置键值如下: //这个键可选 对应需要设置字符串类型值 表明文档作者 kCGPDFContextAuthor //这个键可选 对应需要设置字符串类型值...表示生成文档命名名称 kCGPDFContextCreator //这个键可选 对应需要设置字符串类型值 表示文档名称 kCGPDFContextTitle //这个键设置所有者密码 需要设置...需要设置CFBollean值 默认为允许 kCGPDFContextAllowsPrinting //这个键设置是否允许在未解锁状态下进行复制 需要设置CFBollean值 默认为允许 kCGPDFContextAllowsCopying

    2.7K20

    iOS 固定UITableViewcell.imageView.image图片大小

    经常开发过程中会用到默认UITableViewcell.imageView.image,如果图片尺寸刚好跟我们想要尺寸一样的话倒也相安无事,总是有意外,经常从接口获取图片尺寸大小不固定,例如下图...图1-1 图片尺寸大于cell高度,所以就被“撑爆”了,显得非常不美观、和谐,如果cell高度不固定,图片尺寸又不同,那效果就更加难看了,那我们怎么做呢?...(36, 36);//固定图片大小36*36 UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0);//*1 CGRect...imageRect = CGRectMake(0, 0, itemSize.width, itemSize.height); [icon drawInRect:imageRect]; cell.imageView.image...size创建上下文大小,同时也是上下文处理图形后返回大小 opaque透明开关,如果图形完全不用透明设置YES以优化位图存储。

    1.5K40

    Bitmap图片压缩,大图加载防止OOM

    在解码将inJustDecodeBounds 属性设置 true 可避免内存分配,位图对象返回 null,设置 outWidth、outHeight 和 outMimeType。...以下需要考虑一些因素: 在内存中加载完整图片估计内存使用量。 根据应用任何其他内存要求,您愿意分配用于加载此图片内存量。 图片要载入到目标 ImageView 或界面组件尺寸。...当前设备屏幕大小和密度。 例如,如果 1024x768 像素图片最终会在 ImageView 中显示 128x96 像素缩略图,则不值得将其加载到内存中。...BitmapFactory.Options三件套 inScaled + inDensity + inTargetDensity inScaled设置true设置此标志),如果inDensity...原始图像很大且只需要部分图像,BitmapRegionDecoder 尤其有用。 要创建 BitmapRegionDecoder,请调用 newInstance() 。

    2.7K00

    Bitmap图片压缩,大图加载防止OOM

    在解码将inJustDecodeBounds 属性设置 true 可避免内存分配,位图对象返回 null,设置 outWidth、outHeight 和 outMimeType。...以下需要考虑一些因素: 在内存中加载完整图片估计内存使用量。 根据应用任何其他内存要求,您愿意分配用于加载此图片内存量。 图片要载入到目标 ImageView 或界面组件尺寸。...当前设备屏幕大小和密度。 例如,如果 1024x768 像素图片最终会在 ImageView 中显示 128x96 像素缩略图,则不值得将其加载到内存中。...BitmapFactory.Options三件套 inScaled + inDensity + inTargetDensity inScaled设置true设置此标志),如果inDensity...原始图像很大且只需要部分图像,BitmapRegionDecoder 尤其有用。 要创建 BitmapRegionDecoder,请调用 newInstance() 。

    2K20

    GDI透明贴图

    , 255)); // 设置背景色,也就是源位图透明色,假设为白色,我们一般做素材,将背景做成白色, // 在下面,生成掩码图,跟背景相同会转换为白色,其他颜色转换为黑色 CBitmap...设定该内存位图大小,并设置单色位图 dcMask.CreateCompatibleDC(&dcClient); // 跟dcClient兼容 dcMask.SelectObject(&btSingleColor...//这里DC之间块数据拷贝就用到了开头提到知识点,从彩色位图向单色位图转换, //源位图背景图拷到掩码DC中后变为白色,其他则为黑色 dcClient.BitBlt(0, 0, btinfo.bmWidth..., &dcMask, 0, 0, SRCAND); // 掩码DC内单色位图跟上面的结果进行与操作,目的将需要透明地方保留不变,这样下次再次用源图异或 // 该部分就应为执行了两次异或而透明了...;而最终结果中需要显示部分,在本次掩码与操作中, // 应当清除0,即黑色,这样下次异或,将会原封不动显示出来。

    2.8K60

    Android自定义AvatarImageView实现头像显示效果

    取两图层全部,点亮交集部分颜色 15.PorterDuff.Mode.MULTIPLY  取两图层交集部分叠加后颜色 16.PorterDuff.Mode.SCREEN    取两图层全部区域,交集部分变为透明色...② emun Shader.TileMode 定义了三种着色模式:   CLAMP 拉伸   REPEAT 重复   MIRROR 镜像 好比你拿一张分辨率和电脑屏幕不一样图片设置壁纸...CLAMP 拉伸(图片mBitmap宽高小于View时候要拉伸),但是我们一般不拉伸(变形了),所以一般还要给着色器设置一个matrix,去适当放大或者缩小图片。...(); mBitmapWidth = mBitmap.getWidth(); // 设置含边界显示区域,取CircleImageView布局实际大小,方形 mBorderRect.set(0,...()函数 完成最终绘制 invalidate(); } /** * 这个函数设置BitmapShaderMatrix参数,设置最小缩放比例,平移参数。

    2.3K61

    android学习笔记----关于图形基本处理讲解

    // api如下: /*如果设置true,解码器将返回null(无位图),仍将设置out ...字段,允许调用者查询位图而无需其像素分配内存。...boolean inJustDecodeBounds         如果设置true,解码器将返回null(无位图),仍将设置outWidth、outHeight字段,允许调用者查询位图而无需其像素分配内存...参数 bitmap Bitmap:要绘制位图 这个值绝不能null. matrix Matrix:用于在绘制位图转换位图矩阵。 这个值绝不能null. paint Paint:可能为空。...dp和px之间关系:1dp屏幕密度160dpi1px,也就是说在密度值160dpi情况下,1dp=1px。...// api如下: /*如果设置true,解码器将返回null(无位图),仍将设置out ...字段,允许调用者查询位图而无需其像素分配内存。

    64320

    emwin教程_emwin教程

    如果需要生成.dta 格式位图,在保存文件选择保存类型.dta 文件即可。...1/1000,当值负值将在 X 轴镜像位图; 7) yMag:Y方向缩放比例因子,单位 1/1000,当值负值将在 Y 轴镜像位图。...基本思路: 内存设备消除屏幕闪烁基本思路很简单,不使用内存设备,每一步绘制操作都会直接写入屏幕,这就导致屏幕刷新内容出现闪烁,例如要显示一张位图并在位图上绘制透明文本,首先必须绘制位图,然后绘制透明文本...可用于 矩形区域,比透明标志内存设备快 30 - 50%。...将一个窗口设置底部将把它“放在”它所同属窗口 (如果有的话) 下面; 将它设置顶部将会将它“置于”它同属窗口之上。 创建窗口,如果没有指定创建标志,则默认将其设置顶部。

    5.3K40

    【Android】属性动画(基本用法)

    2.1、透明度 刚刚演示效果中,一开始有个变透明过程,来看看单纯透明怎么写。 透明度由0~1表示。0表示完全透明,1表示不透明 例:在1s内,将imageView透明度从1变成0。...//透明度起始1,结束0 ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "alpha", 1f, 0f); animator.setDuration...(1000);//时间1s animator.start(); ofFloat中参数: imageView:执行动画View; "alpha":表示透明动画; 1f:起始透明度; 0f:动画结束后透明度...除了把透明度从1变成0,ObjectAnimator还支持多个动画。 例:在2s内,将imageView透明度从1变成0然后再变成1。...——> 3.1、透明度 例:2s内,透明度从0.5f变为1f,且一直重复动画,重复模式reverse 在animator文件夹下,创建alpha.xml文件: <?

    1.5K80

    Android JNI处理图片实现黑白滤镜方法

    : ALPHA_8:每个像素都需要1(8位)个字节内存,只存储位图透明度,没有颜色信息 ARGB_4444:A(Alpha)占4位精度,R(Red)占4位精度,G(Green)占4位精度,...B(Blue)占4位精度,加起来一共16位精度,折合2个字节,也就是一个像素占两个字节内存,同时存储位图透明度和颜色信息。...不过由于该精度位图质量较差,官方不推荐使用 ARGB_8888:这个类型跟ARGB_4444原理一样,只是A,R,G,B各占8个位精度,所以一个像素占4个字节内存。...但是,如果一个480*800位图设置了此类型,那个它占用内存空间:480*800*4/(1024*1024)=1.5M RGB_565:同理,R占5位精度,G占6位精度,B占5位精度,一共16...这里注意,这个类型存储只是颜色信息,没有透明度信息 值得注意虽然RGB565三色只有5位信息,其实它们8位,提供5位信息高5位信息。

    1.2K20

    Bitmap优化详解

    1.每个机型在编译ROM设置了一个应用堆内存VM值上限dalvik.vm.heapgrowthlimit,用来限定每个应用可用最大内存,超出这个最大值将会报OOM。...2.图片分辨率越高,消耗内存越大,加载高分辨率图片时候,将会非常占用内存,一旦处理不当就会OOM。例如,一张分辨率:1920x1080图片。...ALPHA_8 表示8位Alpha位图,即A=8,一个像素点占用1个字节,它没有颜色,只有透明度 ARGB_4444 表示16位ARGB位图,即A=4,R=4,G=4,B=4,一个像素点占4+4+4+4...比如通过ImageView来显示图片,很多时候ImageView并没有图片原始尺寸那么大,如果把整个图片加载进来,再设置ImageView,ImageView无法显示原始图片。...inSampleSize1,采样后图片大小图片原始大小;inSampleSize大于1,比如2,那么采样后图片宽高均为原图大小1/2,像素数原图1/4,其占有的内存大小也原图

    1.9K20

    React Native组件(二)View组件解析

    它用来定义View组件子组件宽高超过View组件宽高行为,默认值hidden,即隐藏超出部分。...2.8 opacity opacity 取值0到1,当值0,表示组件完全透明,而值1,则表示组件完全不透明。...它一个特殊与性能优化相关属性,通常在ListView和ScrollView中使用,组件有很多子组件不在屏幕显示范围,可以将removeClippedSubviews设置true,允许释放不在显示范围子组件...它用来决定视图是否要先离屏渲染再进行半透明度处理,来确保颜色和混合效果正确。为了正确显示透明表现而进行离屏渲染会带来极大开销,对于原生开发者来说很难调试,因此,它默认值false。...shouldRasterizeIOS (iOS) shouldRasterizeIOS取值bool,iOS平台独有的属性。它决定视图是否需要在被混合之前绘制到一个位图上。

    2.5K60

    Android 实现圆圈扩散水波动画效果两种方法

    自定义view实现 思路分析:通过canvas画圆,每次改变圆半径和透明度,半径达到一定程度,再次从中心开始绘圆,达到不同层级效果,通过不断绘制达到view扩散效果 private Paint centerPaint...distance : 1; alphas.set(i, alpha); spreadRadius.set(i, width + distance); } } //最外层扩散圆半径达到最大半径添加新扩散圆...中心圆处可以自定义写文字,画图片等等… 动画实现 思路分析:通过动画实现,imageView不停做动画缩放+渐变 最中心imageView保持不变 中间一层imageView从原始放大到1.4倍,同时从不透明变为透明...最外层imageView从1.4倍放大到1.8倍,同时从半透明变为透明 利用shape画一个圆,作为动画基础视图 <?...总结 以上所述小编给大家介绍Android 实现圆圈扩散水波动画效果两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    3.9K40
    领券