android 给imageView,文字等加上阴影[记录]

本文介绍了一个名为ShadowLayout的Android库,该库允许开发者轻松地为应用中的UI元素添加阴影效果。通过简单的配置即可实现不同角度、距离和颜色的阴影。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.链接

https://github.com/Devlight/ShadowLayout

  

2.效果

 

3.code

compile 'com.github.devlight.shadowlayout:library:1.0.2'

  

 <com.gigamole.library.ShadowLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:sl_shadow_angle="2"
        app:sl_shadow_color="#000"
        android:id="@+id/sl"
        app:sl_shadow_distance="5dp"
        app:sl_shadow_radius="1dp"
        app:sl_shadowed="true">
        <ImageView
            android:layout_width="100dp"
            android:id="@+id/ls"
            android:layout_height="100dp"
            android:src="@mipmap/menu_stick" />
    </com.gigamole.library.ShadowLayout>

  

        final ShadowLayout shadowLayout = (ShadowLayout) findViewById(R.id.sl);
        shadowLayout.setIsShadowed(true);
        shadowLayout.setShadowAngle(45);//阴影角度
        shadowLayout.setShadowRadius(20);//阴影半径
        shadowLayout.setShadowDistance(30);//阴影距离
        shadowLayout.setShadowColor(Color.DKGRAY);//阴影颜色

  

 

转载于:https://www.cnblogs.com/galibujianbusana/p/7217311.html

要在Android ImageView周围添加黑色阴影效果,你可以通过自定义View并覆盖`onDraw()`方法来实现。以下是一个简单的步骤: 1. 创建一个新的布局文件或者继承自`ImageView`,例如`ShadowImageView.java`: ```java public class ShadowImageView extends ImageView { private static final int DEFAULT_SHADOW_RADIUS = 5; private static final float DEFAULT_SHADOW_DENSITY = 0.7f; private static final int DEFAULT_SHADOW_COLOR = Color.BLACK; public ShadowImageView(Context context) { this(context, null); } public ShadowImageView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public ShadowImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { setWillNotDraw(false); // 设置为可以绘制 setDrawingCacheEnabled(true); // 启用缓存 } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 获取当前视图的尺寸 int width = getWidth(), height = getHeight(); // 绘制圆形的黑色边框(阴影) Paint paint = new Paint(); paint.setColor(DEFAULT_SHADOW_COLOR); paint.setAntiAlias(true); // 使用抗锯齿 canvas.drawCircle(width / 2, height / 2, getShadowRadius(), paint); // 如果有需要,也可以添加更复杂的阴影效果,如渐变颜色、偏移等 } public int getShadowRadius() { return getResources().getDimensionPixelSize(R.dimen.shadow_radius); } public float getShadowDensity() { return getResources().getFloat(R.attr.shadow_density); } // 可以提供设置属性的方法 public void setShadowRadius(int shadowRadius) { this.shadowRadius = shadowRadius; } // 添加其他相关的set方法... } ``` 2. 在你的主题风格中添加这个自定义控件,并为其定义属性(比如shadow_radius、shadow_density等): ```xml <style name="AppTheme"> <item name="shadow_radius">@dimen/default_shadow_radius</item> <item name="shadow_density">@fraction/default_shadow_density</item> <!-- 其他样式属性 --> </style> <dimen name="default_shadow_radius">5dp</dimen> <fraction name="default_shadow_density">0.7</fraction> ``` 3. 在XML布局中使用`ShadowImageView`代替`ImageView`,并设置相应的属性值: ```xml <com.example.YourPackage.ShadowImageView android:id="@+id/image_view" android:src="@drawable/your_image" app:shadow_radius="5dp" app:shadow_density="0.7" /> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值