ColorFilter设置颜色

本文介绍如何使用十六进制表示颜色,并通过LightingColorFilter和PorterDuffColorFilter在Android中为ImageView应用不同的颜色效果。通过四个按钮触发不同颜色过滤器的设置,展示了颜色变化的应用。

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

#开头的六位十六进制数仅仅表示颜色
0x开头的数字表示包括颜色在内的一般数值。

在这里插入图片描述
代码如下:

import android.graphics.Color;
import android.graphics.LightingColorFilter;
import android.graphics.PorterDuffColorFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final ImageView img=findViewById(R.id.img);
    Button b1=findViewById(R.id.b1);
    Button b2=findViewById(R.id.b2);
    Button b3=findViewById(R.id.b3);
    Button b4=findViewById(R.id.b4);
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //因为ColorFilter是抽象类,不能实例化,所以只能使用LightingColorFilter、PorterDuffColorFilter 和 ColorMatrixColorFilter。
            img.setColorFilter(new LightingColorFilter(Color.BLUE,Color.parseColor("#00000000")));
        }
    });
    b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           img.setColorFilter(new LightingColorFilter(Color.parseColor("#d43c3c"),Color.parseColor("#00000000")));
        }
    });
    b3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        img.setColorFilter(new LightingColorFilter(0x62ffff, 0x6f6100));
        }
    });
    b4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          img.setColorFilter(new LightingColorFilter(Color.RED,0x6f6100));
        }
    });
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值