簡體   English   中英

在ImageView中添加輝光/陰影

[英]Add glow/shadow in ImageView

我想要達到的目標:

在此處輸入圖片說明

我能達到的目標:

在此處輸入圖片說明

碼:

<de.hdodenhof.circleimageview.CircleImageView
        android:padding="5dp"
        android:background="@drawable/sub_cat_background"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/tab_image"
        android:src="@drawable/mehendi_tab"
        android:layout_gravity="center_horizontal"/>

sub_cat_background.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:innerRadius="0dp"
       android:shape="ring"
       android:thicknessRatio="2"
       android:useLevel="false" >
    <solid android:color="@android:color/transparent" />

    <stroke
        android:width="5dp"
        android:color="@color/white" />
</shape>

這是我得到群眾之王建議的能力:

現在如何將灰色環變為陰影效果,如上圖所示 在此處輸入圖片說明

編輯4:

我也嘗試了畫布方式。

為此,我沒有使用xml設置白色環,而是使用了帶有白色圓圈的圖像,如上圖所示(圖像2)。

 Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.salon_selected);

            int imageMaxSize = Math.max(bitmap.getWidth(), bitmap.getHeight());


            RadialGradient gradient = new RadialGradient(imageMaxSize / 2, imageMaxSize / 2, imageMaxSize / 2,
                    new int[] {0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF},
                    new float[] {0.0f, 0.8f, 1.0f},
                    android.graphics.Shader.TileMode.CLAMP);
            Paint paint = new Paint();
            paint.setShader(gradient);


            Canvas canvas=new Canvas();
// in onDraw(Canvas)
            canvas.drawBitmap(bitmap, 0.0f, 0.0f, paint);

            tabImage.setImageBitmap(bitmap);

但是我沒有得到任何效果,代碼源( 如何在Android中實現羽化效果?

在android studio中,有一個可繪制的構建,可用於將陰影應用於任何視圖。 這就像一個投影一樣。

android:background="@drawable/abc_menu_dropdown_panel_holo_light"

使用此方法,您無法更改視圖的背景顏色及其邊框顏色。 如果您想要自己的自定義可繪制對象,請使用圖層列表

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--the shadow comes from here-->
    <item
        android:bottom="0dp"
        android:drawable="@android:drawable/dialog_holo_light_frame"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp">

    </item>

    <item
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="2dp">
        <!--whatever you want in the background, here i preferred solid white -->
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />

        </shape>
    </item>
</layer-list>

並適用於您的視圖,如下所示

android:background="@drawable/custom_drop_shadow_drawable"

如果這不起作用,您可以使用ShadowImageView嘗試類似的操作

通過使用這些屬性,您可以獲得光暈和陰影效果

android:shadowColor
android:shadowDx
android:shadowDy
android:shadowRadius

您是否需要以編程方式實現相同的效果。 Android提供了以下與陰影相關的API。

public void setShadowLayer (float radius, float dx, float dy, int color)

因此,我嘗試了一些不同的字體,陰影設置,顏色和透明度設置。

這是結果圖像

您還可以使用任何視圖(例如imageview,button,textview等)執行此操作

供參考的源代碼

暫無
暫無

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

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