Android ImageView模块的复杂布局,求高手把我从痛苦中解救出来! ImageView不规则ImageView布局自定义ImageView各种形状ImageView照片编辑模块 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没做过,我想那4个view是在代码里面设置长宽高,new layoutparamt里面的参数应该有的吧,然后自己根据屏幕宽高来计算出每个view的长宽 6楼的伙伴你想的也太简单了!你以为单纯的setLayout就可以?你也不仔细看看这是什么样的布局!别说自定义写了,能不能写得出还是一个问题! 用一个Relative父布局,然后放4个imageview,宽高都是全屏,背景设为透明,然后加载图片的时候用矩阵把图片切成你要的那个图片显示出来,这样应该就可以了 那请问你怎么切?Imageview都是四方的,你还能把imageview切成多边的?无非就是画几个层遮住,但这种完全就是错误的。早就尝试过了。 其实这种方式,那样根本行不通,我能想的都想了,现在尝试用redPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.XOR));这个来试试。就是设置两图相交的处理方式 你把三角形当正方形看,旋转图片,然后用canvas clipRect切图,最后合并到一个布局里面,一共4个自定义ImageView绘制图形, 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在理论上应该可以实现,指定坐标 15楼,请问那你能试试写个demo给我看看吗?我底子差,费劲=、= 我简单试了一下,没有写个完整的。你参考一下。 @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(); } 自定义View,然后裁剪绘图区域(Canvas)试试canvas.clipPath(path) pull解析的问题 找不到sdcard的图片 在framework中如何去执行一个home key的键功能 哪位大侠解释下Handler android 如何设置 android:layout_width常量 DrawerLayout求大神解答,抽屉效果的问题 一个关于模拟按键输入的问题 请问下像内置mail应用那样的ListView带CheckBox的效果怎么做? 怎样自定义SearchView的中提交按钮的样式 android中创建组件的两种方式 安装Genymotion时出错,求大神指导该怎么做 安卓新手求大神解救,困扰好几天。
p.lineTo(100, 150);
p.quadTo(230, 150, 300, 200);
p.quadTo(200, 150, 300, 200);
p.quadTo(200, 120, 150, 100);
用path在理论上应该可以实现,指定坐标
@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(); }
canvas.clipPath(path)