0

我正在尝试在矩形布局视图上使用 COLOR 制作阴影模糊效果。我尝试使用此代码,但无济于事。

    int glowRadius = 14;

    int glowColor = Color.parseColor("#acc5fe");

    Paint paint = new Paint();
    paint.setColor(glowColor);

    paint.setMaskFilter(new BlurMaskFilter(glowRadius, BlurMaskFilter.Blur.OUTER));
    RectF rectF = new RectF(mRootView.getHeight(), mRootView.getWidth(),
            mRootView.getHeight(), mRootView.getWidth());
    Canvas canvas = new Canvas();
    canvas.drawRect(rectF, paint);
    mRootView.draw(canvas);

虽然它似乎没有做任何事情。我也尝试使用 shadowDx 和 shadowDy 等,但没有任何作用。

如何为按钮添加模糊的阴影?是一个非常相似的问题,但我不认为 9-patch 是一个可行的解决方案,因为它是布局而不是图像。

如何在 Android 上创建投影外阴影模糊效果?

更新

仍然没有找到成功的答案。我想要类似的东西

示例模糊

其中阴影效果在电子邮件编辑文本上,颜色与黑色不同。

4

2 回答 2

0

我从您的问题中了解到的是,您首先要投下阴影。这是你可以做的事情来投下阴影。
只需将其添加到 xml 中的父布局中。

android:background="@android:drawable/dialog_holo_light_frame"

检查此答案以获取更多信息。 如何在 android 的警报对话框中添加阴影效果
让我知道这是否适合您。

编辑:请检查这个答案。这可能会帮助你。 扩展 Android View 类以添加阴影
可以使用NinePatchDrawable来实现。下面是一个简单的例子。

  protected NinePatchDrawable bg;
  protected Paint paint;
  protected Rect padding = new Rect();
  protected Bitmap bmp;

      protected void init() {
        // decode the 9patch drawable
        bg = (NinePatchDrawable) getResources().getDrawable(R.drawable.balloon);

        // get paddings from the 9patch and apply them to the View
        bg.getPadding(padding);
        setPadding(padding.left, padding.top, padding.right, padding.bottom);

        // prepare the Paint to use below
        paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.rgb(255,255,255));
        paint.setStyle(Style.FILL);

        // this check is needed in order to get this code
        // working if target SDK>=11
        if( Build.VERSION.SDK_INT >= 11 )
          setLayerType(View.LAYER_TYPE_SOFTWARE, paint);

        // set the shadowLayer
        paint.setShadowLayer(
          padding.left * .2f, // radius
          0f, // blurX
          padding.left * .1f, // blurY
          Color.argb(128, 0, 0, 0) // shadow color
        );
      }

也请试试这个颜色:

Color.argb(128, 0, 0, 0)
于 2018-07-28T04:30:06.700 回答
0

尝试关注支持凸面材质阴影的库

https://github.com/harjot-oberai/MaterialShadows

于 2018-07-28T03:17:08.690 回答