项目中遇到的技术问题
*一,判断当前的网络状态,如果是2g、3g网络下,让图片无法显示,显示默认值,当时wifi情况下,让其加载!
**首先,先获取这个按钮,找到之后,设置当前的状态,并通过SharePreference进行存储
**代码如下
switcher_load_picture = (SwitchButton) findViewById(R.id.switcher_load_picture);
boolean isDisplay=getSharedPreferences("sp", MODE_PRIVATE).getBoolean("isDisplay",false);
switcher_load_picture.setChecked(isDisplay);
switcher_load_picture.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
getSharedPreferences("sp", MODE_PRIVATE).edit().putBoolean("isDisplay", isChecked).commit();
}
});
**这段代码是获取当前的选择的状态,进行存储,然后在网络加载图片的地方,进行获取当前的网络状态,即当时选择的状态,如果是WiFi情况下,那么久让他加载,如果不是,那么久让他显示默认图片
代码如下:
SharedPreferences sp = getApplicationContext()
.getSharedPreferences("sp", Context.MODE_PRIVATE);
boolean isDisplay = sp.getBoolean("isDisplay", true);
if (isDisplay) {
bitmapUtils.display(((GridViewHolder) holder).ivThumbnail,
data.getIMG_ImgSrc());
} else {
((GridViewHolder) holder).ivThumbnail
.setImageResource(R.drawable.friends_sends_pictures_no);
}
这样,就可以保证,在wifi情况下才能加载图片了,其他状态下,是不能加载的
适配遇到的问题
1.三星手机,拍照的问题,旋转,需要进行的处理是让这个图片进行翻转,在拍摄照片的地方,进行保存的时候,进行如下代码的编写,就能改变照片的状态,让其翻转
代码如下:
ImageView iv = (ImageView) findViewById(R.id.iv);
/**
* 图片旋转:
* Android中原图是不能进行操作的,必须要先复制一张图到内存,然后再操作
* 旋转是在绘制过程中进行的
* */
//加载原图
Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/1.jpg");
//搞一个一样大小一样样式的复制图
Bitmap copybm = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
//获取复制图的画布
Canvas canvas = new Canvas(copybm);
//获取一个画笔,设置颜色
Paint paint = new Paint();
paint.setColor(Color.RED);
//设置图片绘制角度——设置矩阵
Matrix matrix = new Matrix();
/**
matrix.setValues(new float[]{//这是矩阵的默认值
1.5f,0,0,
0,1,0,
0,0,1
});
而旋转其实是将每个点坐标和sinx cosx进行计算...
*/
//安卓提供了便捷方法
matrix.setRotate(30,bitmap.getWidth()/2,bitmap.getHeight()/2);
//向画布绘制,绘制原图内容
canvas.drawBitmap(bitmap, matrix, paint);
//canvas.drawPoint(10, 10, paint); 向指定位置画一个点
iv.setImageBitmap(copybm);
2,三星480*800的手机,在网络加载图片的时候,GridView加载的图片会出现拉伸的现象,需要找到填充图片的位置,进行这个图片位置的宽高设置为固定的,当然这需要单独的建立一个文件夹,在这个文件夹中存储适应480*800的手机
3,三星手机,TextView加载文本时,如果这个文本里面有数字,字母,文字的话,会出现还没有写完第一行,就会换行显示,这时需要处理的就是,在480*800的手机文件夹布局里面,将这一段TextView字体变小!就能够解决了