• Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    Java
  • Created almost 9 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

史上最全的Android图片滤镜 可自定义任意效果滤镜 &搜索关键字变红,变颜色,指定字段变色 &仿ios给activity背景设置模糊度,(只需要一行代码简单集成)安卓模糊背景,半透明背景,任意透明度背景

#这个应用中有多个项目 ##1,仿ios给activity背景设置模糊度 ##2,搜索关键字变红,指定字段变色 ##3,Android图片滤镜,可以自定义任意效果

#一, BlurBehindActivity 仿ios给activity背景设置模糊度,可以设置任意透明度(只需要一行代码简单集成) 安卓模糊背景,半透明背景,任意透明度背景

#使用步骤,只需下面简单2步。 ##1,把项目中的qclCopy文件夹里的类直接复制到你的项目就行

image ##2,完成好第一步就直接使用了 ###比如你从MainActivity跳转到activity2 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.dummy_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {

				BlurBehind.getInstance().execute(MainActivity.this, new OnBlurCompleteListener() {
					@Override
					public void onBlurComplete() {
						Intent intent = new Intent(MainActivity.this, MainActivity2.class);
						intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

						startActivity(intent);
					}
				});
			}
		});

	}
}

###MainActivity2 只需要添加下面简单一行代码就可以设置模糊效果(也可以设置任意透明度) public class MainActivity2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_blurred);

		BlurBehind.getInstance()//在你需要添加模糊或者透明的背景中只需要设置这几行简单的代码就可以了
				.withAlpha(50)
				.withFilterColor(Color.parseColor("#0075c0"))
				.setBackground(this);
	}
}

#下面是效果图

image image

#二, 搜索关键字变红,指定字段变色 有时候我们搜索中的关键字需要变红或者变为别的颜色,我自己重写了textview。使用起来特别方便

##使用步骤 1,把下面自定义的MyTextView 复制到项目中

import android.content.Context; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.ForegroundColorSpan; import android.util.AttributeSet; import android.widget.TextView;

import java.util.ArrayList; import java.util.List;

//制定字体变色,自定义textview public class MyTextView extends TextView {

public MyTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public void setSpecifiedTextsColor(String text, String specifiedTexts, int color) {
    List<Integer> sTextsStartList = new ArrayList<>();

    int sTextLength = specifiedTexts.length();
    String temp = text;
    int lengthFront = 0;//记录被找出后前面的字段的长度
    int start = -1;
    do {
        start = temp.indexOf(specifiedTexts);

        if (start != -1) {
            start = start + lengthFront;
            sTextsStartList.add(start);
            lengthFront = start + sTextLength;
            temp = text.substring(lengthFront);
        }

    } while (start != -1);

    SpannableStringBuilder styledText = new SpannableStringBuilder(text);
    for (Integer i : sTextsStartList) {
        styledText.setSpan(
                new ForegroundColorSpan(color),
                i,
                i + sTextLength,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

    setText(styledText);
}

}

2,使用只需要一行代码就可以完事 public class TextActivity04 extends Activity { private MyTextView textView;

public String result = "关键字变色,特别简单,只需要一行代码,就可以实现关键字变红";
 
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test_04_layout);
     
    textView = (MyTextView)findViewById(R.id.tv);
    textView.setSpecifiedTextsColor(result, "关键字", Color.parseColor("#FF0000"));
	/*
		textView.setSpecifiedTextsColor(result, "关键字", Color.parseColor("#FF0000"))中result可以换成你的搜索结果
		关键字直接换成你的EditText中输入的关键字就可以啦
	
	*/
}

}

3,附加布局文件,特别简单 <com.huxiu.yd.viewmine.MyTextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@id/image" android:maxLines="2" android:textColor="@color/gray5" android:textSize="14dp" tools:text="测试搜索结果标题" />

#下面是效果图

image

#三,Android图片滤镜,可以自定义任意效果

对图像进行颜色方面的处理,通过使用颜色矩阵(ColorMatrix)来实现。从而可以达到很多特效如黑白老照片、泛黄旧照片等等。

##颜色矩阵(ColorMatrix)实现滤镜效果 ###一,知识简介 一张位图可以转换为一个5*4的矩阵,涉及到颜色和透明度。如图1所示。在Android中, 颜色矩阵M是以一维数组m=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t]的方式进行存储的。 在一张图片中,图像的RGBA(红色、绿色、蓝色、透明度)值决定了该图片所呈现出来的颜色效果。 要想改变一张图片的颜色效果,只需要改变图像的颜色分量矩阵即可。通过颜色矩阵可以很方便的修改图像的颜色分量矩阵。 由此可见,通过颜色矩阵修改了原图像的RGBA值,从而达到了改变图片颜色效果的目的。 并且,通过如图3所示的运算可知,颜色矩阵M的 第一行参数abcde决定了图像的红色成分, 第二行参数fghij决定了图像的绿色成分, 第三行参数klmno决定了图像的蓝色成分, 第四行参数pqrst决定了图像的透明度, 第五列参数ejot是颜色的偏移量。

	通常,改变颜色分量时可以通过修改第5列的颜色偏移量来实现,
	如图4所示的颜色矩阵M1,通过计算后可以得知该颜色矩阵的作用是使图像的红色分量和绿色分量均增加100,
	这样的效果就是图片泛黄(因为红色与绿色混合后得到黄色)。

###二,以黑白效果为例(有两种实现方法) 1,用数组矩阵 float[] array = {1, 0, 0, 0, 100, 0, 1, 0, 0, 100, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}; ColorMatrix colorMatrix = new ColorMatrix(array); 2,把饱和度设置为0 就可以得到黑白的图片 ColorMatrix colorMatrix = new ColorMatrix(); colorMatrix.setSaturation(0);

====================实例代码======================================== package com.huxiu.yd.api.lib.filterAPI;

import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.Paint;

public class GrayFilter { // 黑白效果函数 public static Bitmap changeToGray(Bitmap bitmap) {

    int width, height;
    width = bitmap.getWidth();
    height = bitmap.getHeight();

    Bitmap grayBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
    Canvas canvas = new Canvas(grayBitmap);
    Paint paint = new Paint();
    paint.setAntiAlias(true); // 设置抗锯齿

    //一,数组矩阵的方法
		
    /*float[] array = {1, 0, 0, 0, 100,
                     0, 1, 0, 0, 100,
					 0, 0, 1, 0, 0,
					 0, 0, 0, 1, 0};
	ColorMatrix colorMatrix = new ColorMatrix(array);
	*/

    //二,把饱和度设置为0 就可以得到灰色(黑白)的图片
    ColorMatrix colorMatrix = new ColorMatrix();
    colorMatrix.setSaturation(0);

    ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);

    paint.setColorFilter(filter);
    canvas.drawBitmap(bitmap, 0, 0, paint);

    return grayBitmap;
}

}

3,上面实例代码的使用(传入bitmap即可添加滤镜后的效果)
	Bitmap newBitmap = GrayFilter.changeToGray(bitmap);
			
	//把添加滤镜后的效果显示在imageview上
		imageview.setBackground(new BitmapDrawable(getResources(), newBitmap));

###三,常用的颜色矩阵 1,宝丽来彩色[Polaroid Color]

		float[] array = {1.438, -0.062, -0.062, 0, 0,
                     -0.122, 1.378, -0.122, 0, 0,
					 -0.016, -0.016, 1.483, 0, 0,
					 -0.03, 0.05, -0.02, 1, 0};
		ColorMatrix colorMatrix = new ColorMatrix(array);
		 
	2,怀旧效果
		float[] array = {0.393f,0.769f,0.189f,0,0,  
					0.349f,0.686f,0.168f,0,0,  
					0.272f,0.534f,0.131f,0,0,  
					0,0,0,1,0};
		ColorMatrix colorMatrix = new ColorMatrix(array);
		 		
	3,泛红
		2,0,0,0,0,  
		0,1,0,0,0,  
		0,0,1,0,0,  
		0,0,0,1,0 
	4,泛绿(荧光绿)
		1,0,0,0,0,  
		0,1.4,0,0,0,  
		0,0,1,0,0,  
		0,0,0,1,0  
	5,泛蓝(宝石蓝)
		1,0,0,0,0,  
		0,1,0,0,0,  
		0,0,1.6,0,0,  
		0,0,0,1,0 
	6,泛黄(把红色 跟  绿色分量都加50)
		1,0,0,0,50,  
		0,1,0,0,50,  
		0,0,1,0,0,  
		0,0,0,1,0  

###下面是效果图 image

#我的个人博客

http://blog.csdn.net/qiushi_1990

More Repositories

1

xiaochengxu_demos

小程序优秀项目源码汇总,每个项目都有图有源码,零基础学微信小程序,小程序表格,小程序视频,小程序视频弹幕,小程序仿天猫大转盘抽奖等源码,小程序云开发,小程序发邮件,小程序支付,微信支付,持续更新。。。
JavaScript
1,439
star
2

GuideView-master

Android引导蒙层,安卓新手引导图,引导图层,支持椭圆,圆形,矩形多种形状,一行代码快速搞定新手引导视图,最最轻量级的新手引导库(只有1个类),能够快速的为一个Activity里的任何一个View控件创建一个遮罩式的导航页,支持单个页面,多个引导提示,
Java
551
star
3

VideoDemoQcl

安卓视频播放器 一行代码快速实现在线视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,仿今日头条 Android视频播放器
Java
301
star
4

love

程序员表白神器。安卓程序员表白软件。程序员追女友利器=相爱天数计时器+雪花效果+彩色气泡+心形花园+心形玫瑰花
Java
109
star
5

BlurImageQcl

一行代码实现Android 本地图片或者网络图片高斯模糊效果(毛玻璃效果)
Java
102
star
6

TakePhoto_android7.0

安卓7.0拍照权限适配解决安卓本地图片选择或者拍照更换头像上传后台,
Java
68
star
7

AndroidtagView

Android 图片裁剪、滤镜,添加水印、标签。仿nice添加标签,有图文讲解
Java
54
star
8

randomlayout

安卓动画之随机摆放文字带飞入飞出效果
Java
50
star
9

AndroidPdfViewDowload

android显示PDF文件 ,自定义pdf显示控件,一行代码快速实现pdf下载与本地PDF快速预览,支持线上各种文件下载到本地
Java
47
star
10

wxapppush

5行代码实现微信小程序模版消息推送 (含推送后台和小程序源码)
Java
44
star
11

demo3

安卓常用项目大合集,雷达图,蜘蛛网图,楼层导航栏,海报分享,截取长图,图文混排,搜索关键字高亮显示,安卓view曝光量
Java
43
star
12

StickyNavListview-pulltoGridView

HeaderViewPager 这个项目是自定义的listview和gridview在上滑的同时,顶部的标题同时跟着滑动,具有共同头部的 ViewPager,支持与ListView,GridView,ScrollView,WebView,RecyclerView 嵌套使用
Java
39
star
13

cloud-pay

10行代码实现微信小程序支付,借助小程序云开发云函数实现微信支付
JavaScript
35
star
14

mblog

博客系统:web前端+管理后台+java源码
Java
29
star
15

CustomDialog

Android自定义弹窗,自定义dialog,自定义选择框。可以完全自定义你想要的任何布局,任何样式的Dialog
Java
26
star
16

FlowLayout-master

Android流式布局,支持单选、多选等,适合用于产品标签等,可以自定义标签颜色,标签大小,标签距离。
Java
25
star
17

timeline

利用小程序和小程序云开发模仿微信朋友圈,小程序发朋友圈效果
JavaScript
24
star
18

AutomaticUpdate

安卓自动更新,静默更新,替换友盟更新功能,可以在通知栏里显示更新下载进度,几行代码快速实现Android下载更新
Java
23
star
19

H5Demo

安卓webview html5 自动播放本地视频,网上视频,可以循环播放
JavaScript
21
star
20

QclGlide

Glide加载gif动图,Glide带加载动画(动画可以自定义)比imageloader更好用的安卓图片加载库
Java
19
star
21

H5Game

html5游戏 Android+html5实现类似连连看安卓游戏 安卓activity+webview+h5=2048程序员版 只有程序员才能玩的懂的2048升级版html离线小游戏 2048安卓程序员版 android2048
JavaScript
17
star
22

WebViewShareText

自定义webview的ActionMode Menu 仿好奇心日报重写安卓系统分享功能。webview与h5通过js交互获取网页中选中的文字内容
Java
15
star
23

TextViewDemo

安卓快速实现关键字变色,搜索字变红,点击字体打电话,textview斜体,电商价格删除线,绿色下划线,图片(表情,图文混排) textview超链接跳转
Java
13
star
24

AndFixDemo

android热修复,打补丁,不用发版本就能实时的解决一些bug
C++
11
star
25

cloud-email

微信小程序实现邮件发送,借助小程序云开发进行邮件验证码发送
JavaScript
10
star
26

flowLayout-Android

自定义流式布局实现文字和图片瀑布流效果
Java
10
star
27

NewsHotSift

安卓结合HTML5快速开发APP 和原生效果一样 WaveSwipeRefreshLayout实现微信热文精选,微信热文安卓app版,activity中viewpager套fragment
Java
10
star
28

androidApp

安卓前端+后台实现全栈开发,okhttp+rxjava+retrofit实现安卓app,springboot+jpa实现安卓后台
Java
9
star
29

weixin-xiaochengxu

微信小程序编程学习,一款专门学习微信小程序的小程序。有源码
JavaScript
8
star
30

sell

springboot实战入门,springboot+jpa实现java后台api接口 springboot点餐系统,免费在线api接口
JavaScript
8
star
31

springboot-demos

springboot学习demos springboot+vue实现一个前后端分离的完整项目,同时加深下springboot的学习
Java
7
star
32

ZDYlistView

滑动listview标题置顶,listview吸顶效果,安卓系统状态栏透明,有图有源码
Java
6
star
33

DragLayout-SlidingMenu

仿QQ5.0新特性-侧滑菜单-自定义侧滑面板控件
Java
5
star
34

weixin_sell

微信点餐系统
Java
4
star
35

webview-wechaht

微信小程序webview组件
JavaScript
3
star
36

wxapp-demos

微信小程序常用知识点学习汇总
JavaScript
3
star
37

blog3

springboot2+es+jpa+bootstrap实现博客系统
JavaScript
2
star
38

QCLAutoCycleView

一行代码快速实现今日头条 网易新闻焦点图自动循环轮播效果
Java
2
star
39

mybatis-druid

java+spring常用知识点总结与学习实例,通过实例代码快速掌握spring常用知识点
Java
2
star
40

wuyehoutai2

安卓app对应的java后台
Java
1
star
41

thinkphp5

学习thinkphp5,使用tp5+小程序构建一个全栈项目
PHP
1
star
42

PHPframework

从零开始搭建自己的php框架
PHP
1
star
43

vue0118

vue知识点
Vue
1
star
44

wechatgame-webstorm

用webstorm开发微信小程序,小游戏
JavaScript
1
star
45

Qcl

自己的安卓项目,后台是php,用的阿里云,数据用Python爬虫抓取
Java
1
star
46

spring-boot-docker

springboot学习demo,docker学习demo
HTML
1
star
47

KotlinDemo

用kotlin开发简单入门级安卓项目
Java
1
star
48

freemarker

springboot+freemarker+bootstrap快速实现管理后台,包含分页功能等
JavaScript
1
star