如何将当前界面的可视组件以同样的相对位置和大小保存在png图像文件中?要求写出实践的代码。

来源:互联网 发布:淘宝首页装修图片 编辑:程序博客网 时间:2024/05/22 07:21

截取当前界面的组件和保存成png图像文件。首先要调用view.setDrawingCacheEnabled方法打开图象缓存,然后使用view.getDrawingCache方法获取VIew的Bitmap对象。保存成png图像使用Bitmap.compress方法即可。

View view = getLayoutInflater().inflate(R.layout.main, null);

view.setDrawingCacheEnabled(true);//打开图像缓存

//测量View的大小

view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

//发送位置和尺寸到view及其所用的子view


view.layout(0,0,view.getMeasuredWidth(), view.getMeasuredHeight());

try{

//获取可视组件的截图

Bitmap bitmap = view.getDrawingCache();

//将截图保存在sd卡根目录的test.png图像文件中

FileOutputStream fos = new FileOutputStream("/sdcard/test.png");

//将Bitmap对象中的图像数据压缩成png格式的图像数据,并将这些数据保存在test.png文件中

bitmap.compress(CompressFormat.PNG, 100, fos);

//关闭文件输出流

fos.close();

}

catch (Exception e){

}


2、如何将Android应用程序窗口的背景色设成渐变色?

使用GradientDrawable类可以设置窗口的背景色(也可以用同样的方法设置Button、TextView等组件的渐变背景色),代码如下:

//设置从上到下的渐变色,上方是红色,下方是黄色

GradientDrawable  gradientDrawable = new GradientDrawable(Orientation.TOP_BOTTOM, new int[]{Color.RED, Color.YELLOW});

//设置当前窗口的渐变背景色

getWindow().setBackgroundDrawable(gradientDrawable);


0 0