Android ImageView模块的复杂布局,求高手把我从痛苦中解救出来!

梅明子 2014-12-15 09:20:52
下图中中间的照片模板布局太复杂了,完全没思路。自己技术又不好。加上从来没遇到这样的,就完全不会了。求好心人帮帮忙!这样三角形的或者说各种形状的ImageView该怎么布局?而且图片还是可以缩放和移动的。拜托各位大神了!
...全文
455 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y先生y 2017-05-04
  • 打赏
  • 举报
回复
算出X Y 坐标点 然后 自己画呗
小茅屋 2016-03-02
  • 打赏
  • 举报
回复
15楼一语惊醒梦中人!非常感谢!
梅明子 2014-12-17
  • 打赏
  • 举报
回复
引用 18 楼 baidu_23478311 的回复:
15楼,请问那你能试试写个demo给我看看吗?我底子差,费劲=、=
貌似这样也不太行,无从下手了
梅明子 2014-12-17
  • 打赏
  • 举报
回复
引用 21 楼 assky124 的回复:
网上有人总结的区域裁剪,你看看,写的很好
没有啊,没找到有这样的,唉,搞了快一星期了,一点进展都没啊!怎么办啊!求解救!
assky124 2014-12-16
  • 打赏
  • 举报
回复
网上有人总结的区域裁剪,你看看,写的很好
assky124 2014-12-16
  • 打赏
  • 举报
回复
自定义View,然后裁剪绘图区域(Canvas)试试 canvas.clipPath(path)
Birds2018 2014-12-16
  • 打赏
  • 举报
回复
我简单试了一下,没有写个完整的。你参考一下。

	@Override
	public void draw(Canvas canvas) {
	
//	   canvas.drawColor(Color.WHITE);
//	   canvas.save();
//	   canvas.clipRect(0, 0, 400, 400);
//	   canvas.drawBitmap(bitmap, 0,0, new Paint());
//	   canvas.restore();
//	   
//		Path path = new Path();
//		Paint p = new Paint();
//		p.setColor(Color.WHITE);
//		path.moveTo(0, 0);
//		path.lineTo(0, 400);
//		path.lineTo(400, 400);
//		path.close();
//		canvas.drawPath(path, p);
//	    
		
	   	canvas.drawColor(Color.WHITE);
		canvas.save();
		Matrix m = new Matrix();
		m.setRotate(45, 0, 400);
		canvas.setMatrix(m);
		canvas.clipRect(0, 0, 400, 400);
		canvas.drawBitmap(bitmap, m, new Paint());
		canvas.restore();

	}

梅明子 2014-12-16
  • 打赏
  • 举报
回复
15楼,请问那你能试试写个demo给我看看吗?我底子差,费劲=、=
jackieliyuan 2014-12-15
  • 打赏
  • 举报
回复
低手路过只能帮顶
梅明子 2014-12-15
  • 打赏
  • 举报
回复
没人吗?顶呀!有高手路过帮小弟一把嘛!
执着的大笨猪 2014-12-15
  • 打赏
  • 举报
回复
p.moveTo(100, 100); p.lineTo(100, 150); p.quadTo(230, 150, 300, 200); p.quadTo(200, 150, 300, 200); p.quadTo(200, 120, 150, 100); 用path在理论上应该可以实现,指定坐标
Birds2018 2014-12-15
  • 打赏
  • 举报
回复
你可以找个拼图软件,思路有点和这个像似。
Birds2018 2014-12-15
  • 打赏
  • 举报
回复
你把三角形当正方形看,旋转图片,然后用canvas clipRect切图,最后合并到一个布局里面,一共4个自定义ImageView绘制图形,
梅明子 2014-12-15
  • 打赏
  • 举报
回复
恩恩,正在各种尝试,苦逼了
silly_wy 2014-12-15
  • 打赏
  • 举报
回复
好吧,如果矩阵切不出来多边形,算我想多了,毕竟没做这效果。如果你做出来了,分享下。
silly_wy 2014-12-15
  • 打赏
  • 举报
回复
圆形都能切出来。多边还不能切?
梅明子 2014-12-15
  • 打赏
  • 举报
回复
其实这种方式,那样根本行不通,我能想的都想了,现在尝试用redPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.XOR));这个来试试。就是设置两图相交的处理方式
梅明子 2014-12-15
  • 打赏
  • 举报
回复
那请问你怎么切?Imageview都是四方的,你还能把imageview切成多边的?无非就是画几个层遮住,但这种完全就是错误的。早就尝试过了。
silly_wy 2014-12-15
  • 打赏
  • 举报
回复
而且1,3图片内容居左,2,4图片内容居右。只要算的好,就不会重叠在一起。。用矩阵式可以把图片切成那个样子
silly_wy 2014-12-15
  • 打赏
  • 举报
回复
用一个Relative父布局,然后放4个imageview,宽高都是全屏,背景设为透明,然后加载图片的时候用矩阵把图片切成你要的那个图片显示出来,这样应该就可以了
加载更多回复(5)

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧