簡體   English   中英

在Android中的FrameLayout / Layout上產生陰影模糊效果

[英]Drop shadow blur effect on a FrameLayout / Layout in Android

我正在嘗試在矩形布局視圖上使用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補丁不是一個可行的解決方案,因為它是布局而不是圖像。

如何在Android上創建外部陰影模糊效果?

更新資料

仍然沒有找到成功的答案。 我想要類似的東西

例子模糊

陰影效果在電子郵件編輯文本上的顏色不同於黑色。

嘗試遵循一個用於支持凸材質陰影的庫

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

從您的問題中我了解到的是,首先您要放下陰影。 這是您可以用來陰影的方法。
只需將其添加到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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM