我正在开发Android上的照片拼贴项目。我想知道如何实现以下拼贴效果?
所以每张三角形都有两张照片。
或更复杂的形状如下:(这将拍摄5张照片)
答案 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.