Android TextView 透明底图片 颜色反了

在Android开发中,我们经常会遇到需要在TextView中显示透明底图片,并且需要文字颜色反映的情况。这样的需求可能会在设计师给出的设计稿中出现,为了实现这一效果,我们可以通过自定义Drawable来实现。下面我们来介绍一种实现方法。

实现步骤

  1. 首先,我们需要准备一个透明底图片和一个文字颜色。在res目录下创建一个drawable文件夹,将透明底图片保存在这里。然后在res目录下创建一个color文件夹,定义文字颜色。

  2. 接着,我们需要创建一个自定义的Drawable类,继承自Drawable。

public class CustomDrawable extends Drawable {
    private Paint paint;

    public CustomDrawable(int color) {
        paint = new Paint();
        paint.setColor(color);
        paint.setStyle(Paint.Style.FILL);
    }

    @Override
    public void draw(Canvas canvas) {
        canvas.drawColor(Color.TRANSPARENT);
        canvas.drawRect(getBounds(), paint);
    }

    @Override
    public void setAlpha(int alpha) {
        paint.setAlpha(alpha);
        invalidateSelf();
    }

    @Override
    public void setColorFilter(@Nullable ColorFilter colorFilter) {
        paint.setColorFilter(colorFilter);
        invalidateSelf();
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSLUCENT;
    }
}
  1. 最后,我们可以在TextView中使用这个自定义Drawable。
<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello, World!"
    android:background="@drawable/custom_drawable"
    android:textColor="@color/text_color"
    android:padding="16dp"/>

总结

通过自定义Drawable,我们可以实现在TextView中显示透明底图片,并且文字颜色颠倒的效果。这种方法可以很好地满足设计要求,提升用户体验。希望本文对你在Android开发中遇到类似需求时有所帮助。

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains

通过以上步骤,我们可以轻松实现Android TextView透明底图片,颜色反了的效果。希望本文对你有所帮助!