问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

安卓imageview 怎么加shadow阴影

发布网友 发布时间:2022-04-19 23:00

我来回答

2个回答

懂视网 时间:2022-04-20 03:22

我们知道可以用css来实现阴影效果,但是html5中canvas也可以用来设置阴影效果,所以,接下来的这篇文章将给大家来介绍关于如何用canvas来设置阴影效果,话不多说,直接来看内容。

首先要知道在canvas中进行绘制时,不管是文本、图形、还是图像,也不管是描边还是填充,都可以通过设置上下文对象的相关属性,来为它们设置阴影。

canvas创建阴影效果需要使用以下四个属性:

shadowColor:阴影的颜色,其默认值为完全透明的黑色。因此,如果没有把该属性设置为不透明,则阴影是不可见的。该属性只能设置为一个表示颜色的字符串,不能使用渐变或图案。使用半透明的阴影可以产生很逼真的阴影效果,因为透过阴影还能看到背景。

shadowOffsetX:阴影在X轴的偏移量,单位为像素。默认值为0,阴影位于图形正下方,阴影是不可见的。大于0向右偏移,小于0向左偏移。阴影偏移量越大,产生的阴影也越大,同时会感觉绘制的图形在画布是浮得也越高。

shadowOffsetY:阴影在Y轴的偏移量,单位为像素。默认值为0,阴影位于图形正下方,阴影是不可见的。大于0向下偏移,小于0向上偏移。阴影偏移量越大,产生的阴影也越大,同时会感觉绘制的图形在画布是浮得也越高。

shadowBlur:阴影的模糊值。是一个与像素无关的值,被用于高斯模糊方程中,以便对阴影进行模糊化处理。默认值为0,表示产生一个清晰的阴影。该值越大,表示阴影越模糊。

说明:根据canvas规范,只有在满足以下两个条件时,浏览器才会绘制阴影:

1、指定了一个非全透明的shadowColor属性值;

2、shadowOffsetX、shadowOffsetY、shadowBlur三个属性中,至少有一个属性的值不是0。

下面我们就来看看canvas实现的阴影效果实例代码:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title>Canvas</title>
 </head>
 <style type="text/css">
 body{margin:20px auto; padding:0; width:800px; }
 canvas{border:dashed 2px #CCC}
 </style>
 <script type="text/javascript">
 function $$(id){
 return document.getElementById(id);
 }
 function pageLoad(){
 var can = $$('can');
 var cans = can.getContext('2d');
 cans.fillStyle = 'green';
 cans.shadowOffsetX = 5;
 cans.shadowOffsetY = 5;
 cans.shadowColor = '#333';
 cans.shadowBlur = 10;
 cans.fillRect(200,300,400,200);
 }
 </script>
<body onload="pageLoad();">
 <canvas id="can" width="800px" height="600px"></canvas>
</body>
</html>

canvas设置阴影效果如下:

2345截图20180917115048.png

本篇文章到这里就结束了,关于canvas元素的更多用法可以参考html5开发手册。

热心网友 时间:2022-04-20 00:30

重写ImageView

public class HKImageView extends ImageView {

public HKImageView(Context context, AttributeSet attrs) {
super(context, attrs, 0);
}

public HKImageView(Context context) {
super(context);
}

@Override
protected void onDraw(Canvas canvas) {
Log.d("lg", "onDraw");
super.onDraw(canvas);

// 画边框
Rect rect1 = getRect(canvas);
Paint paint = new Paint();
paint.setColor(Color.GRAY);
paint.setStyle(Paint.Style.STROKE);

// 画边框
canvas.drawRect(rect1, paint);

paint.setColor(Color.LTGRAY);

// 画一条竖线,模拟右边的阴影
canvas.drawLine(rect1.right + 1, rect1.top + 2, rect1.right + 1,
rect1.bottom + 2, paint);
// 画一条横线,模拟下边的阴影
canvas.drawLine(rect1.left + 2, rect1.bottom + 1, rect1.right + 2,
rect1.bottom + 1, paint);

// 画一条竖线,模拟右边的阴影
canvas.drawLine(rect1.right + 2, rect1.top + 3, rect1.right + 2,
rect1.bottom + 3, paint);
// 画一条横线,模拟下边的阴影
canvas.drawLine(rect1.left + 3, rect1.bottom + 2, rect1.right + 3,
rect1.bottom + 2, paint);
}

Rect getRect(Canvas canvas) {
Rect rect = canvas.getClipBounds();
rect.bottom -= getPaddingBottom();
rect.right -= getPaddingRight();
rect.left += getPaddingLeft();
rect.top += getPaddingTop();
return rect;
}
}

使用
要给图片添加padding才有效果
imageView.setPadding(3, 3, 5, 5);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 起名字 女孩蛇年77年的姓翟 女孩名字徐梓什么的,后面一个字要三点水 谢梓沁这个名字好吗 姓黄,女。2016.07.18号(阴历2016.06.15)黄梓欣 黄梓沁这两个名字怎么样? 女孩名字叫赵梓沁好吗 滴灌系统的组成都包括哪些 黄梓沁女孩名字好吗? 我想改个网名 最好是带个丽字的 滴灌系统的介绍 谁能帮我快出生的BB起个名字并说明其寓意! 帮忙取个带‘丽’字的网名 大棚温室软管滴灌系统组成及注意事项? 免费起名哥哥叫李子轩妹妹叫什么好? 急求一篇英语日记,100字左右 余梓芯的含义 想给女取这个名字 不知道好听吗 也想知道具体什么含义。 滴灌系统由什么组成? 带丽字的个性qq网名 帮我起一个含有“丽”字的网名 2个 每年的国家公务员考试职位表都是一样的吗? 微滴灌的滴灌系统的组成 梦见久未见面的朋友睡一张床但蚊子多咬了很多胞? 番茄是转基因食品吗? 给女儿娶名字,中间带梓字,缺水 这小番茄都是转基因的吗??也叫圣女果?是无土培植吗??无土培植都是转基因吗??怎么分辨是不是转基因 想报考中药鉴定师需要做哪些准备和条件呢?这个行业的前景是怎样的呢?麻烦您帮忙解答一下可以吗 报考中药材中药饮片高级鉴别师需要什么资格 中药材鉴别需要什么证书? 大西红柿全不是转基因的么? 这是哪个机场? 哪有香港新机场高清大图? 中药鉴定师需要什么性格 中药鉴定师证有什么用 香港机场介绍 下巴处有一个拇指大小的黑色胎记,还有脸上雀斑多 下巴周围长斑是何原因拜托各位大神 新生儿下巴有红点点 ,是什么原因造成的? 脸上下巴长了一个黑的胎记有毛的怎么办 下巴上的胎记有哪些说法? 下巴有胎记的命运怎么变好 婴儿下巴起湿疹