今天与大家交流 Bitmap 的绘制方法。昨晚和一个兄弟交流关于 imageButton 的问题。请看下面的图片,第一张是运行在模拟器上效果,第二张是运行在真机Q7 上的效果。
开始我一直怀疑是他的布局上有问题,看完他的布局后,改动了下,还是不行。后来再在工程的 res 目录下的drawable-mdpi、drawable-ldpi、drawable-hdpi 三个子目录加载对应的图片,就解决了。因为在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
下面再讲下使用 filter 功能来 绘制图片:
1、先在对应的 drawable 中加载 需要的图片。
2、Co
package com.drawbitmap;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.widget.ImageView;
public class drawBitmap extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//
ImageView image = (ImageView) this.findViewById(R.id.ImageView01);
Bitmap photo = BitmapFactory.decodeResource(this.getResources(),R.drawable.images01);
int bmpwidth = photo.getWidth();
int bmpheight = photo.getHeight();
Matrix matrix = new Matrix();
matrix.postScale(2,2);
Bitmap bm = Bitmap.createBitmap(photo,0,0,bmpwidth,bmpheight ,matrix,true);
image.setImageBitmap(bm);
}
}
上面 Co
未使用 filter: 使用 filter:
没有过滤的图片看上去要粗糙些,而且色彩上也要灰白一些。