在这个例程当中,主要讲了将一个图片压缩成字节流,然后转化成数组 在变成图片的故事。
首先 图片压缩成流 在转变成图片的方法还是值得学习的:
private static Bitmap codec(Bitmap src, Bitmap.CompressFormat format,
int quality) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
src.compress(format, quality, os);

byte[] array = os.toByteArray();
return BitmapFactory.decodeByteArray(array, 0, array.length);
}

初始化 图片:
mBitmaps = new Bitmap[6];
// these three are initialized with colors[]
mBitmaps[0] = Bitmap.createBitmap(colors, 0, STRIDE, WIDTH, HEIGHT,
Bitmap.Config.ARGB_8888);
mBitmaps[1] = Bitmap.createBitmap(colors, 0, STRIDE, WIDTH, HEIGHT, Bitmap.Config.RGB_565);
mBitmaps[2] = Bitmap.createBitmap(colors, 0, STRIDE, WIDTH, HEIGHT,
Bitmap.Config.ARGB_4444);

// these three will have their colors set later
mBitmaps[3] = Bitmap.createBitmap(WIDTH, HEIGHT,
Bitmap.Config.ARGB_8888);
mBitmaps[4] = Bitmap.createBitmap(WIDTH, HEIGHT,
Bitmap.Config.RGB_565);
mBitmaps[5] = Bitmap.createBitmap(WIDTH, HEIGHT,
Bitmap.Config.ARGB_4444);
for (int i = 3; i <= 5; i++) {
mBitmaps[i].setPixels(colors, 0, STRIDE, 0, 0, WIDTH, HEIGHT);
}

for (int i = 0; i < mBitmaps.length; i++) {
mJPEG[i] = codec(mBitmaps[i], Bitmap.CompressFormat.JPEG, 80);
mPNG[i] = codec(mBitmaps[i], Bitmap.CompressFormat.PNG, 0);

最后将图片绘画在屏幕上
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);

for (int i = 0; i < mBitmaps.length; i++) {
canvas.drawBitmap(mBitmaps[i], 0, 0, null);
canvas.drawBitmap(mJPEG[i], 80, 0, null);
canvas.drawBitmap(mPNG[i], 160, 0, null);
canvas.translate(0, mBitmaps[i].getHeight());
}

// draw the color array directly, w/o craeting a bitmap object
canvas.drawBitmap(mColors, 0, STRIDE, 0, 0, WIDTH, HEIGHT,
true, null);
canvas.translate(0, HEIGHT);
canvas.drawBitmap(mColors, 0, STRIDE, 0, 0, WIDTH, HEIGHT,
false, mPaint);
}
上面的绘制 有三种情况 绘制jpeg 绘制png 直接绘制原数组。
mBitmaps[i].setPixels(colors, 0, STRIDE, 0, 0, WIDTH, HEIGHT);
也可以通过上面的方式来改变颜色

更多相关文章

  1. View绘制体系(三)——AttributeSet与TypedArray详解
  2. [代码片段] 【转】Android以最省内存的方式读取本地资源的
  3. Android(安卓)图片与屏幕坐标点
  4. 熟悉Android---canvas第一笔
  5. [android]数组资源
  6. Android(安卓)高斯算法在"在路上"APP 的实现
  7. Android(安卓)ListView列表视图的使用方法
  8. Android基础教程之-----访Iphone 拖动相片特效Gallery的简单应用
  9. 开源项目之Android(安卓)GreenDroid(界面库)

随机推荐

  1. Android模糊处理实现图片毛玻璃效果
  2. android获取内置和外置SD卡路径
  3. Android 自动化测试—robotium(五)Spinner
  4. Android Linux Socket 数据传输错误
  5. Android 加快编译时间
  6. android开发 使用uses-sdk 导致布局不一
  7. android dm-verity 功能
  8. Android(安卓)菜单Menu学习
  9. Android(安卓)Systrace使用介绍
  10. VideoView控件可以手动改变大小