android像素级图形效果
来源:互联网 发布:视频会议软件破解版 编辑:程序博客网 时间:2024/05/17 02:26
1 像素点分析
各种老照片 底片等效果 底层原理如这个方法。通过某种算法改变每个像素的值。核心方法为 bm.getPixels(oldPx, 0, width, 0, 0, width, height); 讲所有的颜色信息保存在数组oldPx中
public static Bitmap handleImageNegative(Bitmap bm) { int width = bm.getWidth(); int height = bm.getHeight(); int color; int r, g, b, a; Bitmap bmp = Bitmap.createBitmap(width, height , Bitmap.Config.ARGB_8888); int[] oldPx = new int[width * height]; int[] newPx = new int[width * height]; bm.getPixels(oldPx, 0, width, 0, 0, width, height); for (int i = 0; i < width * height; i++) { color = oldPx[i]; r = Color.red(color); g = Color.green(color); b = Color.blue(color); a = Color.alpha(color); r = 255 - r; g = 255 - g; b = 255 - b; if (r > 255) { r = 255; } else if (r < 0) { r = 0; } if (g > 255) { g = 255; } else if (g < 0) { g = 0; } if (b > 255) { b = 255; } else if (b < 0) { b = 0; } newPx[i] = Color.argb(a, r, g, b); } bmp.setPixels(newPx, 0, width, 0, 0, width, height); return bmp; }
2 刮刮卡View
核心方法:
mPaint.setXfermode( new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); case MotionEvent.ACTION_MOVE: mPath.lineTo(event.getX(), event.getY()); break; mCanvas.drawPath(mPath, mPaint); invalidate();
public class XfermodeView extends View { private Bitmap mBgBitmap, mFgBitmap; private Paint mPaint; private Canvas mCanvas; private Path mPath; public XfermodeView(Context context) { super(context); init(); } public XfermodeView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public XfermodeView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { mPaint = new Paint(); mPaint.setAlpha(0); mPaint.setXfermode( new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeWidth(50); mPaint.setStrokeCap(Paint.Cap.ROUND); mPath = new Path(); mBgBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test); mFgBitmap = Bitmap.createBitmap(mBgBitmap.getWidth(), mBgBitmap.getHeight(), Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mFgBitmap); mCanvas.drawColor(Color.GRAY); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mPath.reset(); mPath.moveTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_MOVE: mPath.lineTo(event.getX(), event.getY()); break; } mCanvas.drawPath(mPath, mPaint); invalidate(); return true; } @Override protected void onDraw(Canvas canvas) { canvas.drawBitmap(mBgBitmap, 0, 0, null); canvas.drawBitmap(mFgBitmap, 0, 0, null); }
0 0
- android像素级图形效果
- android二维图形翻转效果
- Android 自定义shape图形效果
- android 图形平移 镜子效果 倒影效果
- 访问像素级改变图片效果
- HTML5利用Canvas绘制图形(使用图像、裁剪区域、使用文本。阴影效果和操作像素)
- android酷炫翻页效果+图形分析
- android酷炫翻页效果+图形分析
- android酷炫翻页效果+图形分析
- android酷炫翻页效果+图形分析
- android中通过shape定制图形效果
- android UI效果四: 动态填充Bitmap像素信息
- 基于Android自带插入器的图形波动效果
- android中自定义一个图形,单点移动缩小的效果
- 图像处理------像素格效果
- (转)cocos2d-x 不规则图形碰撞检测(像素级碰撞检测)
- 扫描像素点法获取图形轮廓
- 求不规则图形内像素点(凸状)
- 带有通配符的字符串和另一个字符串进行匹配(转载加修改)
- MYSQL与Entity Framework
- linux基本指令
- 路由选择算法----JAVA版
- MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password'
- android像素级图形效果
- JQ ajax提交表单文件
- C++ 基础知识(1)--类
- 组织架构图插件简介
- 数据库连接池
- Thinkphp框架3.2支持七牛图片上传的配置
- 百度笔试算法题:算法题:给你一个自然数N,求[6,N]之内的所有素数中,两两之和为偶数的那些偶数。
- 2016年11月9日学习总结
- 基于MVC模式的MVC 5框架