2 china hgb china_hgb 于 2016.02.12 06:28 提问

安卓中的ImageView控件的背景透明

请问如何在安卓中将ImageView控件动态加载的图片的背景去掉?image.setAlpha(0)不起作用?

3个回答

leilba
leilba   Rxr 2016.02.12 10:23
已采纳

第一个问题:
图片背景透明是由图片本身决定的,一般使用png格式的图片,因为具有透明属性,而且需要事先用工具将背景弄成透明的才行。
当然,你实在是不想事先就用透明图,你也可以对bitmap进行处理,因为你可以将图片加载成为bitmap,而bitmap是可以进行色值的编辑的,bitmap是一个位图,你可以一位一位去进行色彩处理,比如说你指定红色ARGB(255,255,0,0)为透明色,那么,你在处理的时候只需要将所有的红色转化为(0,0,0,0)就行了(其中A表示的是透明度,改成0就行了),你可以通过bitmap.getPixel(int x,int y),获取每个位的色值,再通过bitmap.setPixel(int x,int y,int color)来设置这个位的色值。通过这个,你可以随便改透明,当然,你改A的值的时候也能够改透明度。

第二个问题:
image.setAlpha(0)这个image应该是ImageView是吧,那么你这个操作会将这个ImageView一整个变成透明,不只是图片的背景哦,这个效果和image.setVisibility(View.INVISIBLE)是一样的

china_hgb
china_hgb 谢谢
接近 2 年之前 回复
caozhy
caozhy 赞,很详细的回答。
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.12 06:59

image.setAlpha(0)应该就可以了,但是你必须保证图片本身背景是透明的,你可以用photoshop打开看下。

caozhy
caozhy   Ds   Rxr 2016.02.12 07:00

确保你的图片是png等具有透明颜色分量的格式,如果用ps打开你的图片,在你的空白处显示的是灰色和白色交替的小色块,那么就说明图片是透明的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!