在SlidingTabStrip上反转textview的颜色

时间:2014-06-26 14:46:36

标签: android android-animation android-tabhost

我需要创建动画,因为这会在动画时暂时反转TextView的颜色。我正在使用SlidingTabLayout和ViewPager,如下所示:

enter image description here

颜色仅供参考。

完整的代码在这里:

SlidingTabLayout:here SlidingTabStrip:here

[UPDATE]

我试过了:

    int normalTextColor = Color.argb( 0, 0, 0, 0);
    int pressedFilterColor = Color.argb(225, 238, 11, 83);

    Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); //make a 1-pixel Bitmap
    Canvas canvas = new Canvas(bitmap);

    canvas.drawColor(normalTextColor); //color we want to apply filter to
    canvas.drawColor(pressedFilterColor, PorterDuff.Mode.LIGHTEN); //apply filter

    int pressedTextColor = bitmap.getPixel(0,  0);
    textView.setTextColor(pressedTextColor);

但仍然没有工作。

1 个答案:

答案 0 :(得分:1)

正如Raybaybay所说,在Android中说这不是一个简单的方法。您将不得不使用图层。如果您熟悉Photoshop或Gimp,那么您可以了解哪些图层,如果没有,请查看http://docs.gimp.org/en/gimp-image-combining.html#gimp-concepts-layers。这里的关键是知道如何组合图层。首先测试屏幕并乘以模式http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html。 PorterDuff Modes上的Javadoc是没用的,但是这篇文章(直接转到" transfer"部分)应该可以帮助你http://www.xenomachina.com/2011/05/androids-2d-canvas-rendering-pipeline.html了解正在发生的事情。

现在,从您的代码中我发现您熟悉Android示例。您应该检查" APIDemos"上的Graphics / Xfermodes演示。样品。您可以直接从Eclipse安装它:new>其他> Android示例项目。该演示显示了哪些PorterDuff模式以及如何使用它们。我希望这会有所帮助。