【发布时间】:2016-03-28 10:58:12
【问题描述】:
【问题讨论】:
标签: android imageview android-imageview
【问题讨论】:
标签: android imageview android-imageview
您想要实现的目标可以通过多种方式完成。
第一种方法 - 使用叠加图像
这可能是实现这一点的最直接的方法。创建一个位图或可绘制对象,它本质上是一个具有所需背景颜色(在您的示例中为深红色)的三角形,并将其提供给位于原始 ImageView 上方的 ImageView,与底部对齐。这个新的ImageView 基本上会挡住你原来ImageView 的底部,给你想要的效果。
第二种方法 - 使用图像蒙版
此方法稍微复杂一些,但无需在布局中添加额外的ImageView。基本上,这意味着您需要在将位图设置到ImageView 之前对其进行一些处理,并且您需要一个额外的位图来定义结果图像的形状。该位图将成为图像的“掩码”。 Click here 查看有关如何执行此操作的示例。
【讨论】:
试试这个,API > 11
mImageView.setRotation(angle);
使用 API>=11
你也可以从xml设置
android:rotation="90"
【讨论】:
您可以像这样扩展 ImageView 并覆盖 onDraw 方法:
Paint paint=new Paint();
paint.setColor(Color.BLACK);
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Path p=new Path();
//start from bottom left corner
p.moveTo(0,canvas.getHeight());
//move to the offset
p.lineTo(canvas.getWidth(),YOUR_OFFSET);
//move to bottom right corner
p.lineTo(canvas.getWidth(),canvas.getHeight());
//return to bottom left corner
p.lineTo(0,canvas.getHeight());
//clsoe the path
p.close();
canvas.drawPath(p,paint);
}
如果您想用某种颜色绘制该区域。
否则,您可以定义裁剪区域并使用canvas.clipPath(Path path)方法
【讨论】: