答案 0 :(得分:2)
您尝试实现的目标可以通过几种方式完成。
第一种方法 - 使用叠加图像
这可能是实现这一目标的最直接的方法。创建一个位图,或者一个可绘制的,它本质上是一个具有所需背景颜色的三角形(在您的示例中为深红色),并将其放置到放置在原始ImageView
上的ImageView
,与底部。这个新的ImageView
基本上会阻挡原始ImageView
的底部,为您提供所需的效果。
第二种方法 - 使用图像蒙版
此方法稍微复杂一些,但无需在布局中添加ImageView
。基本上,这意味着您需要在ImageView
上设置位图之前稍微处理一下位图,并且您需要一个额外的位图来定义结果图像的形状。这个位图将是"掩码"你的形象。 Click here查看有关如何执行此操作的示例。
答案 1 :(得分:0)
尝试使用API> 11
mImageView.setRotation(angle);
API> = 11
您也可以从xml
设置它android:rotation="90"
答案 2 :(得分:0)
您可以像这样扩展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)方法