84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
怎么给一个imageview设置一个shadow 设置一个阴影
闭关修行中......
比较简单的办法,效果比较丑陋,同理,你可以用阴影图片替代画线得到好的效果 重写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);
闭关修行中......