解决方案 »

  1.   

    没做过,我想那4个view是在代码里面设置长宽高,new layoutparamt里面的参数应该有的吧,然后自己根据屏幕宽高来计算出每个view的长宽
      

  2.   

    6楼的伙伴你想的也太简单了!你以为单纯的setLayout就可以?你也不仔细看看这是什么样的布局!别说自定义写了,能不能写得出还是一个问题!
      

  3.   

    用一个Relative父布局,然后放4个imageview,宽高都是全屏,背景设为透明,然后加载图片的时候用矩阵把图片切成你要的那个图片显示出来,这样应该就可以了
      

  4.   

    那请问你怎么切?Imageview都是四方的,你还能把imageview切成多边的?无非就是画几个层遮住,但这种完全就是错误的。早就尝试过了。
      

  5.   

    其实这种方式,那样根本行不通,我能想的都想了,现在尝试用redPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.XOR));这个来试试。就是设置两图相交的处理方式
      

  6.   

    你把三角形当正方形看,旋转图片,然后用canvas clipRect切图,最后合并到一个布局里面,一共4个自定义ImageView绘制图形,
      

  7.   

     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在理论上应该可以实现,指定坐标
      

  8.   

    15楼,请问那你能试试写个demo给我看看吗?我底子差,费劲=、=
      

  9.   

    我简单试了一下,没有写个完整的。你参考一下。
    @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(); }
      

  10.   

    自定义View,然后裁剪绘图区域(Canvas)试试
    canvas.clipPath(path)