如何在Android上实现照片拼贴

时间:2014-01-15 10:15:18

标签: android android-layout

我正在开发Android上的照片拼贴项目。我想知道如何实现以下拼贴效果?

enter image description here

所以每张三角形都有两张照片。

或更复杂的形状如下:(这将拍摄5张照片) enter image description here

1 个答案:

答案 0 :(得分:4)

这并不容易。

一种解决方案是删除图像中不需要的像素,例如this thread中的以下代码段(切掉右上角):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ImageView iv = (ImageView) findViewById(R.id.your_image);
    int drawableId = R.drawable.your_drawable;
    cutOffTopRightCorner(iv, drawableId, skewWidth);
}

@SuppressLint("NewApi")
private void cutOffTopRightCorner(ImageView iv, int resId, int skewWidth) {
    Bitmap bm = BitmapFactory.decodeResource(getResources(), resId).copy(Config.ARGB_8888, true);
    bm.setHasAlpha(true);
    final int bmWidth = bm.getWidth();

    for (int i = bmWidth; i > bmWidth - skewWidth; --i) {
        for (int k = 0; k < i - (bmWidth - skewWidth); ++k) {
            bm.setPixel(i - 1, k, Color.TRANSPARENT);
        }
    }
    iv.setImageBitmap(bm);
} 

另一个解决方案是使用FrameLayouts(differenz z-indices)并将图像与其他图像或drawable叠加。

您还可以查看this thread.