android-gpuimage - 在像instagram这样的水平滚动视图中提供图像过滤器

时间:2014-06-11 17:08:27

标签: android android-imageview gpu gpuimage

正如标题所述,我正在尝试使用像instagram这样的图像过滤器开发应用程序。 我可以使用CPUImage库为照片添加效果,但无法在水平滚动视图中显示图像过滤器选项。

我的想法是创建一堆代表不同过滤效果的演示图片,并将它们列在水平滚动视图中。选择演示图片时,使用CPUImage库添加相应的效果。

问题是:

这是在水平滚动视图中实现图像过滤器的正确或最简单方法吗?

我是否错过了现有的参考资料,教程或图书馆做同样的事情?

感谢任何帮助。谢谢你们。

1 个答案:

答案 0 :(得分:0)

花了一些时间来计算我们如何合并水平滚动视图和gpuImageFilter,我能够实现像图像过滤器这样的Instagram。

以下针对具有相同问题的任何人的相关链接和代码共享。

代码

// Set the current effect mode as image border or filter
private void setEffectMode(String mode)
{

    // Compute the width of a carousel item based on the screen width and
    // number of initial items.
    final DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    final int imageWidth = (int) (displayMetrics.widthPixels / INITIAL_ITEMS_COUNT);
    TypedArray filterResourcesTypedArray = null;

    mCarouselContainer.removeAllViews();
    if (mode.equals(borderMode))
    {
        // Get the array of puppy resources
        filterResourcesTypedArray = getResources().obtainTypedArray(R.array.borderArray);
    } else if (mode.equals(filterMode))
    {
        // Get the array of puppy resources
        filterResourcesTypedArray = getResources().obtainTypedArray(R.array.filterArray);
    }

    // Populate the carousel with items
    for (int i = 0; i < filterResourcesTypedArray.length(); i++)
    {
        // Create new ImageView
        imageItem = new ImageView(this);
        imageItem.setId(i);
        imageItem.setTag(mode);

        // Set the image view resource
        imageItem.setImageResource(filterResourcesTypedArray.getResourceId(i, -1));

        // Set the size of the image view to the previously computed value
        imageItem.setLayoutParams(new LinearLayout.LayoutParams(imageWidth, imageWidth));

        // / Add image view to the carousel container
        mCarouselContainer.addView(imageItem);
        imageItem.setOnClickListener(this);
    }
}

如何创建水平图像滚动视图 http://www.smashingmagazine.com/2013/02/01/android-carousel-design-pattern/