package com.test;import android.R.integer;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.ColorMatrix;import android.graphics.ColorMatrixColorFilter;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.RectF;import android.os.Bundle;import android.view.View;public class NewActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(new _view(this));}class _view extends View{public _view(Context context){super(context);// TODO Auto-generated constructor stub}@Overridepublic void onDraw(Canvas canvas){RectF rectF = new RectF(30f, 300f, 400f, 800f);Matrix _Matrix = new Matrix();Paint _Paint = new Paint();_Paint.setColor(Color.BLUE);canvas.drawArc(rectF, 0f, 180f, true, _Paint);Bitmap bitmap = BitmapFactory.decodeFile("data/data/com.test/filse/psb.jpg");int psb[] = new int[bitmap.getWidth() * bitmap.getHeight()] ;bitmap.getPixels(psb, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());        int width = bitmap.getWidth();          int height = bitmap.getHeight();          Bitmap _bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);          int pixColor = 0;          int pixR = 0;          int pixG = 0;          int pixB = 0;          int newR = 0;          int newG = 0;          int newB = 0;          int[] pixels = new int[width * height];          bitmap.getPixels(pixels, 0, width, 0, 0, width, height);          for (int i = 0; i < height; i++)          {              for (int k = 0; k < width; k++)              {                  pixColor = pixels[width * i + k];                  pixR = Color.red(pixColor);                  pixG = Color.green(pixColor);                  pixB = Color.blue(pixColor);                  newR = (int) (0.393 * pixR + 0.769 * pixG + 0.189 * pixB);                  newG = (int) (0.349 * pixR + 0.686 * pixG + 0.168 * pixB);                  newB = (int) (0.272 * pixR + 0.534 * pixG + 0.131 * pixB);                  int newColor = Color.argb(255, newR > 255 ? 255 : newR, newG > 255 ? 255 : newG, newB > 255 ? 255 : newB);                  pixels[width * i + k] = newColor;              }          }                    _bitmap.setPixels(pixels, 0, width, 0, 0, width, height);/*int count = 0;        int  preColor = 0;        int  prepreColor = 0;        int color = 0;        for (int i = 0; i < bitmap.getWidth(); i++)        {              for (int j = 0;  j < bitmap.getHeight(); j++)               {                int curr_color = psb[count];//              int curr_color = psb[i*bitmap.getHeight() + j];                int r = Color.red(prepreColor) - Color.red(curr_color) +127;                int g = Color.green(prepreColor) - Color.green(curr_color) +127;                int b = Color.blue(prepreColor) - Color.blue(curr_color) +127;                int a = Color.alpha(prepreColor);                int modif_color  = Color.argb(a, r, g, b);//                bitmap.setPixel(i, j, modif_color);//                psb[i*bitmap.getHeight() + j] = modif_color;                psb[count] = modif_color;                prepreColor = preColor;                preColor = curr_color;                count++;            }        }*/        canvas.drawBitmap(_bitmap,0,0,null);/*Rect _Rect = new Rect(300, 300, 500, 500);Rect _Rect2 = new Rect(20, 20, 170, 170);//canvas.drawBitmap(bitmap, null, _Rect, null);canvas.drawBitmap(bitmap,null, _Rect2, _Paint);_Matrix.setRotate(45f, 300, 300);canvas.setMatrix(_Matrix);ColorMatrix _ColorMatrix = new ColorMatrix();_ColorMatrix.setSaturation(0);ColorMatrixColorFilter _ColorMatrixColorFilter = new ColorMatrixColorFilter(_ColorMatrix);_Paint.setColorFilter(_ColorMatrixColorFilter);canvas.drawBitmap(bitmap, null, _Rect, _Paint);*/}}}


更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android 开发者 for Flutter (3) flutter中
  2. Android 使用Material Design实现滑动菜
  3. ANDROID L——Material Design详解(主题和
  4. 为Android扩展一个硬件模块需要做两件事:
  5. Android界面设计(左侧隐藏菜单右边显示con
  6. CheckBox和RadioButton
  7. Android Binder机制分析(5) Binder_ioctl
  8. Android工作学习笔记之图片自适应imagevi
  9. 【转】Android(安卓)解析如何获取SDCard
  10. Android:android sdk源码中怎么没有httpc