/**
* 变化Item的灰度值
* @param child 需要设置灰度值的Item
* @param frame 位置信息
*/
private void greyItem(View child,Rect frame) {
float value = computeGreyScale(frame.left - mOffsetAll);
ColorMatrix cm = new ColorMatrix(new float[]{
value,120*(1-value),value,1,250*(1-value),});
// cm.setSaturation(0.9f);
// Create a paint object with color matrix
Paint greyPaint = new Paint();
greyPaint.setColorFilter(new ColorMatrixColorFilter(cm));
// Create a hardware layer with the grey paint
child.setLayerType(View.LAYER_TYPE_HARDWARE,greyPaint);
if (value >= 1) {
// Remove the hardware layer
child.setLayerType(View.LAYER_TYPE_NONE,null);
}
}
项目:GitHub
文件:PageWidget.java
public PageWidget(Context context,String bookId,List<BookMixAToc.mixToc.Chapters> chaptersList,OnReadStatechangelistener listener) {
super(context,bookId,chaptersList,listener);
mPath0 = new Path();
mPath1 = new Path();
mMaxLength = (float) Math.hypot(mScreenWidth,mScreenHeight);
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL);
createDrawable();
ColorMatrix cm = new ColorMatrix();//设置颜色数组
float array[] = {0.55f,80.0f,0.55f,0.2f,0};
cm.set(array);
mColorMatrixFilter = new ColorMatrixColorFilter(cm);
mMatrix = new Matrix();
mTouch.x = 0.01f; // 不让x,y为0,否则在点计算时会有问题
mTouch.y = 0.01f;
}
项目:FriskyImage
文件:FriskyImageProperty.java
public static Bitmap FriskyEnhanceImage(Bitmap mBitmap,float contrast,float brightness) {
ColorMatrix cm = new ColorMatrix(new float[]
{
contrast,brightness,contrast,0
});
Bitmap BrightedImage = Bitmap.createBitmap(mBitmap.getWidth(),mBitmap.getHeight(),mBitmap
.getConfig());
Canvas canvas = new Canvas(BrightedImage);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(mBitmap,paint);
return BrightedImage;
}
项目:FriskyImage
文件:FriskyImageProperty.java
public static Bitmap FriskyContrast(Bitmap bitmap,int Value)
{
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.set(new float[] {
Value,Value,0 });
Bitmap BrightedImage = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap
.getConfig());
Canvas canvas = new Canvas(BrightedImage);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
canvas.drawBitmap(bitmap,paint);
return BrightedImage;
}
项目:FriskyImage
文件:FriskyImageProperty.java
public static Bitmap FriskyBright(Bitmap mBitmap,int fb) {
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.set(new float[] {
1,fb,0 });
Bitmap BrightedImage = Bitmap.createBitmap(mBitmap.getWidth(),mBitmap
.getConfig());
Canvas canvas = new Canvas(BrightedImage);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
canvas.drawBitmap(mBitmap,paint);
return BrightedImage;
}
项目:LaunchEnr
文件:DragView.java
private void animateFilterTo(float[] targetFilter) {
float[] oldFilter = mCurrentFilter == null ? new ColorMatrix().getArray() : mCurrentFilter;
mCurrentFilter = Arrays.copyOf(oldFilter,oldFilter.length);
if (mFilteranimator != null) {
mFilteranimator.cancel();
}
mFilteranimator = ValueAnimator.ofObject(new FloatArrayEvaluator(mCurrentFilter),oldFilter,targetFilter);
mFilteranimator.setDuration(COLOR_CHANGE_DURATION);
mFilteranimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mPaint.setColorFilter(new ColorMatrixColorFilter(mCurrentFilter));
invalidate();
}
});
mFilteranimator.start();
}
项目:FriendBook
文件:SimulationPageAnim.java
public SimulationPageAnim(int w,int h,View view,OnPagechangelistener listener) {
super(w,h,view,mScreenHeight);
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL);
createDrawable();
ColorMatrix cm = new ColorMatrix();//设置颜色数组
float array[] = { 1,0 };
cm.set(array);
mColorMatrixFilter = new ColorMatrixColorFilter(cm);
mMatrix = new Matrix();
mTouchX = 0.01f; // 不让x,否则在点计算时会有问题
mTouchY = 0.01f;
}
项目:Bridge
文件:ChooserItemViewHolder.java
private void checkSelected() {
boolean selected = BridgeSettings.isActivityForward(getData().activityInfo.name);
itemView.setSelected(selected);
if (!selected) {
if (filter.get() == null) {
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter grayColorFilter = new ColorMatrixColorFilter(cm);
filter = new WeakReference<>(grayColorFilter);
}
icon.setColorFilter(filter.get());
} else {
icon.setColorFilter(null);
}
}
项目:Quran
文件:HighlightingImageView.java
public void adjustNightMode() {
if (isNightMode && !isColorFilterOn) {
float[] matrix = {
-1,nightModeTextBrightness,-1,0
};
setColorFilter(new ColorMatrixColorFilter(matrix));
isColorFilterOn = true;
} else if (!isNightMode) {
clearColorFilter();
isColorFilterOn = false;
}
invalidate();
}
项目:garras
文件:CollectionAdapter.java
private void startSaturationAnimation(Context context,final AppCompatimageView target) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
target.setHasTransientState(true);
final Animutils.ObservableColorMatrix matrix = new Animutils.ObservableColorMatrix();
final ObjectAnimator saturation = ObjectAnimator.ofFloat(
matrix,Animutils.ObservableColorMatrix.SATURATION,0f,1f);
saturation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
target.setColorFilter(new ColorMatrixColorFilter(matrix));
}
});
saturation.setDuration(2000);
saturation.setInterpolator(Animutils.getFastOutSlowInInterpolator(context));
saturation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
target.clearColorFilter();
target.setHasTransientState(false);
}
});
saturation.start();
}
}
项目:garras
文件:PhotoAdapter.java
private void startSaturationAnimation(Context context,1f);
saturation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
target.setColorFilter(new ColorMatrixColorFilter(matrix));
}
});
saturation.setDuration(2000);
saturation.setInterpolator(Animutils.getFastOutSlowInInterpolator(context));
saturation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
target.clearColorFilter();
target.setHasTransientState(false);
}
});
saturation.start();
}
}
项目:BBSSDK-for-Android
文件:ImageUtils.java
/**
* 转为灰度图片
*
* @param src 源图片
* @param recycle 是否回收
* @return 灰度图
*/
public static Bitmap toGray(final Bitmap src,final boolean recycle) {
if (isEmptyBitmap(src)) {
return null;
}
Bitmap ret = Bitmap.createBitmap(src.getWidth(),src.getHeight(),src.getConfig());
Canvas canvas = new Canvas(ret);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorMatrixColorFilter colorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(colorMatrixColorFilter);
canvas.drawBitmap(src,paint);
if (recycle && !src.isRecycled()) {
src.recycle();
}
return ret;
}
项目:XFrame
文件:XBitmapUtils.java
/**
* 饱和度处理
*
* @param bitmap 原图
* @param saturationValue 新的饱和度值
* @return 改变了饱和度值之后的图片
*/
public static Bitmap saturation(Bitmap bitmap,int saturationValue) {
// 计算出符合要求的饱和度值
float newSaturationValue = saturationValue * 1.0F / 127;
// 创建一个颜色矩阵
ColorMatrix saturationColorMatrix = new ColorMatrix();
// 设置饱和度值
saturationColorMatrix.setSaturation(newSaturationValue);
// 创建一个画笔并设置其颜色过滤器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(saturationColorMatrix));
// 创建一个新的图片并创建画布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 将原图使用给定的画笔画到画布上
canvas.drawBitmap(bitmap,paint);
return newBitmap;
}
项目:XFrame
文件:XBitmapUtils.java
/**
* 亮度处理
*
* @param bitmap 原图
* @param lumValue 新的亮度值
* @return 改变了亮度值之后的图片
*/
public static Bitmap lum(Bitmap bitmap,int lumValue) {
// 计算出符合要求的亮度值
float newlumValue = lumValue * 1.0F / 127;
// 创建一个颜色矩阵
ColorMatrix lumColorMatrix = new ColorMatrix();
// 设置亮度值
lumColorMatrix.setScale(newlumValue,newlumValue,1);
// 创建一个画笔并设置其颜色过滤器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(lumColorMatrix));
// 创建一个新的图片并创建画布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),paint);
return newBitmap;
}
项目:XFrame
文件:XBitmapUtils.java
/**
* 色相处理
*
* @param bitmap 原图
* @param hueValue 新的色相值
* @return 改变了色相值之后的图片
*/
public static Bitmap hue(Bitmap bitmap,int hueValue) {
// 计算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 创建一个颜色矩阵
ColorMatrix hueColorMatrix = new ColorMatrix();
// 控制让红色区在色轮上旋转的角度
hueColorMatrix.setRotate(0,newHueValue);
// 控制让绿红色区在色轮上旋转的角度
hueColorMatrix.setRotate(1,newHueValue);
// 控制让蓝色区在色轮上旋转的角度
hueColorMatrix.setRotate(2,newHueValue);
// 创建一个画笔并设置其颜色过滤器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(hueColorMatrix));
// 创建一个新的图片并创建画布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),paint);
return newBitmap;
}
项目:NovelReader
文件:SimulationPageAnim.java
public SimulationPageAnim(int w,mScreenHeight);
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL);
createDrawable();
ColorMatrix cm = new ColorMatrix();//设置颜色数组
float array[] = { 1,否则在点计算时会有问题
mTouchY = 0.01f;
}
private void otherInit() {
// Other initialization
mBlackPaint = new Paint();
mBlackPaint.setColor(0xff000000);
mMaskedPaint = new Paint();
mMaskedPaint
.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
// Always want a cache allocated.
mCacheBitmap = Bitmap.createBitmap(1,Bitmap.Config.ARGB_8888);
if (mDesaturateOnPress) {
// Create a desaturate color filter for pressed state.
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
mDesaturateColorFilter = new ColorMatrixColorFilter(cm);
}
}
项目:Glide-transformations
文件:GrayscaleTransformation.java
@Override
public Resource<Bitmap> transform(Resource<Bitmap> resource,int outWidth,int outHeight) {
Bitmap source = resource.get();
int width = source.getWidth();
int height = source.getHeight();
Bitmap.Config config =
source.getConfig() != null ? source.getConfig() : Bitmap.Config.ARGB_8888;
Bitmap bitmap = mBitmapPool.get(width,height,config);
if (bitmap == null) {
bitmap = Bitmap.createBitmap(width,config);
}
Canvas canvas = new Canvas(bitmap);
ColorMatrix saturation = new ColorMatrix();
saturation.setSaturation(0f);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(saturation));
canvas.drawBitmap(source,paint);
return BitmapResource.obtain(bitmap,mBitmapPool);
}
项目:LJFramework
文件:ImageUtils.java
/**
* 转为灰度图片
*
* @param src 源图片
* @param recycle 是否回收
* @return 灰度图
*/
public static Bitmap toGray(Bitmap src,boolean recycle) {
if (isEmptyBitmap(src)) {
return null;
}
Bitmap grayBitmap = Bitmap.createBitmap(src.getWidth(),src
.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(grayBitmap);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorMatrixColorFilter colorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(colorMatrixColorFilter);
canvas.drawBitmap(src,paint);
if (recycle && !src.isRecycled()) {
src.recycle();
}
return grayBitmap;
}
项目:buildAPKsSamples
文件:FoldingLayoutActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fold);
mImageView = (ImageView)findViewById(R.id.image_view);
mImageView.setPadding(ANTIALIAS_PADDING,ANTIALIAS_PADDING,ANTIALIAS_PADDING);
mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
mImageView.setimageDrawable(getResources().getDrawable(R.drawable.image));
mTextureView = new TextureView(this);
mTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
mAnchorSeekBar = (SeekBar)findViewById(R.id.anchor_seek_bar);
mFoldLayout = (FoldingLayout)findViewById(R.id.fold_view);
mFoldLayout.setBackgroundColor(Color.BLACK);
mFoldLayout.setFoldListener(mOnFoldListener);
mTouchSlop = ViewConfiguration.get(this).getScaledTouchSlop();
mAnchorSeekBar.setonSeekBarchangelistener(mSeekBarchangelistener);
mScrollGestureDetector = new GestureDetector(this,new ScrollGestureDetector());
mItemSelectedListener = new ItemSelectedListener();
mDefaultPaint = new Paint();
mSepiaPaint = new Paint();
ColorMatrix m1 = new ColorMatrix();
ColorMatrix m2 = new ColorMatrix();
m1.setSaturation(0);
m2.setScale(1f,.95f,.82f,1.0f);
m1.setConcat(m2,m1);
mSepiaPaint.setColorFilter(new ColorMatrixColorFilter(m1));
}
项目:EditPhoto
文件:ContrastView.java
private void initView() {
subject = PublishSubject.create();
subject.debounce(0,TimeUnit.MILLISECONDS)
// .filter(new Predicate<Float>() {
// @Override
// public boolean test(Float contrast) throws Exception {
// return true;
// }
// })
.distinctUntilChanged()
.switchMap(new Function<Float,ObservableSource<ColorMatrixColorFilter>>() {
@Override
public ObservableSource<ColorMatrixColorFilter> apply(Float value) throws Exception {
return postContrast(value);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ColorMatrixColorFilter>() {
@Override
public void accept(ColorMatrixColorFilter colorMatrixColorFilter) throws Exception {
setColorFilter(colorMatrixColorFilter);
}
});
}
项目:EditPhoto
文件:Utils.java
static Bitmap contrastBitmap(Bitmap bitmap,float contrast) {
float[] colorTransform = new float[]{
contrast,0};
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0f);
colorMatrix.set(colorTransform);
ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);
Paint paint = new Paint();
paint.setColorFilter(colorFilter);
Bitmap resultBitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true);
Canvas canvas = new Canvas(resultBitmap);
canvas.drawBitmap(resultBitmap,paint);
return resultBitmap;
}
项目:EditPhoto
文件:SaturationView.java
private void initView() {
subject = PublishSubject.create();
subject.debounce(0,TimeUnit.MILLISECONDS)
// .filter(new Predicate<Float>() {
// @Override
// public boolean test(Float brightness) throws Exception {
// return true;
// }
// })
.distinctUntilChanged()
.switchMap(new Function<Float,ObservableSource<ColorMatrixColorFilter>>() {
@Override
public ObservableSource<ColorMatrixColorFilter> apply(Float value) throws Exception {
return postBrightness(value);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ColorMatrixColorFilter>() {
@Override
public void accept(ColorMatrixColorFilter colorMatrixColorFilter) throws Exception {
setColorFilter(colorMatrixColorFilter);
}
});
}
项目:EditPhoto
文件:Utils.java
public static Bitmap brightBitmap(Bitmap bitmap,int brightness) {
float[] colorTransform = {
1,0};
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0f);
colorMatrix.set(colorTransform);
ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);
Paint paint = new Paint();
paint.setColorFilter(colorFilter);
Bitmap resultBitmap = bitmap.copy(Bitmap.Config.ARGB_8888,paint);
return resultBitmap;
}
项目:EditPhoto
文件:Utils.java
public static Bitmap contrastBitmap(Bitmap bitmap,int contrast) {
float[] colorTransform = {
contrast,paint);
return resultBitmap;
}
private void initView() {
subject = PublishSubject.create();
subject.debounce(0,ObservableSource<ColorMatrixColorFilter>>() {
@Override
public ObservableSource<ColorMatrixColorFilter> apply(Float value) throws Exception {
return postBrightness(value);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ColorMatrixColorFilter>() {
@Override
public void accept(ColorMatrixColorFilter colorMatrixColorFilter) throws Exception {
setColorFilter(colorMatrixColorFilter);
}
});
}
项目:EditPhoto
文件:Utils.java
static Bitmap brightBitmap(Bitmap bitmap,float brightness) {
float[] colorTransform = {
1,paint);
return resultBitmap;
}
项目:TextReader
文件:PageWidget.java
public PageWidget(Context context,否则在点计算时会有问题
mTouch.y = 0.01f;
}
项目:BookReader-master
文件:PageWidget.java
public PageWidget(Context context,否则在点计算时会有问题
mTouch.y = 0.01f;
}
项目:HumanBody
文件:IosButton.java
/**
* 传入改变亮度前的bitmap,返回改变亮度后的bitmap
* @author leibing
* @createTime 2016/12/30
* @lastModify 2016/12/30
* @param srcBitmap
* @return
*/
@SuppressWarnings("deprecation")
public Drawable changeBrightnessBitmap(Bitmap srcBitmap){
Bitmap bmp = Bitmap.createBitmap(srcBitmap.getWidth(),srcBitmap.getHeight(),Config.ARGB_8888);
int brightness = 60 - 127;
ColorMatrix cMatrix = new ColorMatrix();
// 改变亮度
cMatrix.set(new float[] { 1,0 });
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cMatrix));
Canvas canvas = new Canvas(bmp);
// 在Canvas上绘制一个Bitmap
canvas.drawBitmap(srcBitmap,paint);
return new BitmapDrawable(bmp);
}
项目:Ghost-Android
文件:PostAdapter.java
public PostAdapter(Context context,List<Post> posts,String blogUrl,Picasso picasso,View.OnClickListener itemClickListener) {
mContext = context;
mBlogUrl = blogUrl;
mPicasso = picasso;
mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mPosts = posts;
mItemClickListener = itemClickListener;
mLowAlphaPaint = new Paint();
mLowAlphaPaint.setColorFilter(new ColorMatrixColorFilter(new float[] {
1,// red
0,// green
0,// blue
0,0.5f,// alpha
}));
setHasstableIds(true);
}
项目:StopApp
文件:AppAdapter.java
@Override
public void convertDiff(ViewHolder holder,int position,List payloads) {
Bundle payload = (Bundle) payloads.get(0);
int isEnable = payload.getInt(BUNDLE_PAYLOAD);
((TextView) holder.getView(R.id.tv_app_name)).setTextColor(isEnable == 1
? mResources.getColor(R.color.textPrimary) : mResources.getColor(R.color.translucentBg));
if (isEnable == 1) {
mMatrix.setSaturation(1);
mColorFilternormal = new ColorMatrixColorFilter(mMatrix);
((ImageView) holder.getView(R.id.iv_app_icon)).setColorFilter(mColorFilternormal);
} else {
mMatrix.setSaturation(0);
mColorFilterGrey = new ColorMatrixColorFilter(mMatrix);
((ImageView) holder.getView(R.id.iv_app_icon)).setColorFilter(mColorFilterGrey);
}
}
项目:android-study
文件:ImageHelper.java
public static Bitmap handleImageGrayEffect(Bitmap bitmap) {
Bitmap bmp =
Bitmap.createBitmap(bitmap.getWidth(),Bitmap.Config.ARGB_8888);
float[] colorMatrixValue = new float[] {
0.33f,0.59f,0.11f,0.33f,0
};
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.set(colorMatrixValue);
Canvas canvas = new Canvas(bmp);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
canvas.drawBitmap(bitmap,paint);
return bmp;
}
项目:android-study
文件:ImageHelper.java
public static Bitmap handleImageHighSaturationEffect(Bitmap bitmap) {
Bitmap bmp =
Bitmap.createBitmap(bitmap.getWidth(),Bitmap.Config.ARGB_8888);
float[] colorMatrixValue = new float[] {
1.438f,-0.122f,-0.016f,-0.03f,-0.062f,1.378f,0.05f,1.483f,-0.02f,paint);
return bmp;
}
public static Bitmap handleImageEffect(Bitmap bm,float lum) {
Bitmap bmp = Bitmap.createBitmap(bm.getWidth(),bm.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
Paint paint = new Paint();
ColorMatrix lumMatrix = new ColorMatrix();
lumMatrix.setScale(lum,lum,1);
ColorMatrix imageMatrix = new ColorMatrix();
imageMatrix.postConcat(lumMatrix);
paint.setColorFilter(new ColorMatrixColorFilter(imageMatrix));
canvas.drawBitmap(bm,paint);
return bmp;
}
项目:FlickLauncher
文件:DragView.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void animateFilterTo(float[] targetFilter) {
float[] oldFilter = mCurrentFilter == null ? new ColorMatrix().getArray() : mCurrentFilter;
mCurrentFilter = Arrays.copyOf(oldFilter,targetFilter);
mFilteranimator.setDuration(COLOR_CHANGE_DURATION);
mFilteranimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mPaint.setColorFilter(new ColorMatrixColorFilter(mCurrentFilter));
invalidate();
}
});
mFilteranimator.start();
}
项目:aos-MediaLib
文件:Utils.java
public static void setBackground(View v,Bitmap bm) {
if (bm == null) {
v.setBackgroundResource(0);
return;
}
int vwidth = v.getWidth()/4;
int vheight = v.getHeight()/4;
int bwidth = bm.getWidth();
int bheight = bm.getHeight();
float scalex = (float) vwidth / bwidth;
float scaley = (float) vheight / bheight;
float scale = Math.max(scalex,scaley) * 1.3f;
Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap bg = Bitmap.createBitmap(vwidth,vheight,config);
Canvas c = new Canvas(bg);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
ColorMatrix greymatrix = new ColorMatrix();
greymatrix.setSaturation(0);
ColorMatrix darkmatrix = new ColorMatrix();
darkmatrix.setScale(1f,1f,.1f);
greymatrix.postConcat(darkmatrix);
ColorFilter filter = new ColorMatrixColorFilter(greymatrix);
paint.setColorFilter(filter);
Matrix matrix = new Matrix();
matrix.setTranslate(-bwidth/2,-bheight/2); // move bitmap center to origin
matrix.postRotate(10);
matrix.postScale(scale,scale);
matrix.postTranslate(vwidth/2,vheight/2); // Move bitmap center to view center
c.drawBitmap(bm,matrix,paint);
v.setBackgroundDrawable(new BitmapDrawable(bg));
}
项目:SimpleUILauncher
文件:DragView.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void animateFilterTo(float[] targetFilter) {
float[] oldFilter = mCurrentFilter == null ? new ColorMatrix().getArray() : mCurrentFilter;
mCurrentFilter = Arrays.copyOf(oldFilter,targetFilter);
mFilteranimator.setDuration(COLOR_CHANGE_DURATION);
mFilteranimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mPaint.setColorFilter(new ColorMatrixColorFilter(mCurrentFilter));
invalidate();
}
});
mFilteranimator.start();
}
项目:Picasso-transformations
文件:GrayscaleTransformation.java
@Override public Bitmap transform(Bitmap source) {
int width = source.getWidth();
int height = source.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
ColorMatrix saturation = new ColorMatrix();
saturation.setSaturation(0f);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(saturation));
canvas.drawBitmap(source,paint);
source.recycle();
return bitmap;
}
项目:RLibrary
文件:ResUtil.java
/**
* 设置View的灰度
*/
public static void setGreyscale(View v,boolean greyscale) {
if (greyscale) {
// Create a paint object with 0 saturation (black and white)
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
Paint greyscalePaint = new Paint();
greyscalePaint.setColorFilter(new ColorMatrixColorFilter(cm));
// Create a hardware layer with the greyscale paint
v.setLayerType(LAYER_TYPE_HARDWARE,greyscalePaint);
} else {
// Remove the hardware layer
v.setLayerType(LAYER_TYPE_NONE,null);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。