口袋演员像导航栏背景图像

时间:2016-02-19 19:05:19

标签: android uinavigationbar material-design android-image

我想知道口袋演员应用程序如何创建其导航栏背景图像。从我注意到他们从您订阅的播客中获取图像并以某种方式创建此图像并将其设置为导航栏背景。非常酷的效果!

有关重新创建类似内容的任何提示吗?

谢谢!

Example

2 个答案:

答案 0 :(得分:2)

  1. 使用Bitmap标题的宽度和高度创建一个空的NavigationView
  2. 收集您感兴趣的Bitmap张图片,然后在Canvas上将它们缩放到彼此旁边。您始终从0绘制到scaledBitmap.getWidth(),然后scaledBitmap.getWidth()应保存为下一个Bitmap的下一个起点。对高度执行相同的逻辑。将您要绘制的Bitmap的数量限制为某个数字,以便记忆和放大表现原因。
  3. 获取标题视图中Matrix的{​​{1}}并将其旋转一定程度
  4. 将所需颜色的ImageView应用于整个标题视图。
  5. 这也可以旋转一个drawable。

答案 1 :(得分:0)

按照@Nikola的步骤回答:

    public static Bitmap createBitmap(int width, int height, List<Bitmap> bitmaps) {
    final Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    final Canvas canvas = new Canvas(newBitmap);

    final Paint paint = new Paint();
    paint.setAlpha(50);

    int currentWidth = 0;
    int currentHeight = 0;
    for (Bitmap scaledBitmap : bitmaps) {
        //draw the bitmap
        canvas.drawBitmap(scaledBitmap, currentWidth, currentHeight, paint);

        //update width
        currentWidth += scaledBitmap.getWidth();
        //update height
        if (currentWidth > width) {
            currentWidth = 0;
            currentHeight += scaledBitmap.getHeight();
        }
    }

    return newBitmap;
}

主要区别在于我最终设置了透明度(使用setAlpha),而不是ColorFilter。

如果最后你还想旋转,只需在将保存位图的imageview中调用imageView.setRotation(度)。

干杯