Android将view保存为图片并放在相册中

  在Android中,可以将view保存为图片并放在相册中,步骤为 view->bitmap->file,即先将view转化为bitmap,再将bitmap保存到相册中。

  

  需要将红框标注的view转化为图片并保持到相册中。view的XML代码为

<RelativeLayout
                android:id="@+id/lanjing_code_rl"   //要保存的view id
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_margin="20dp"
                android:paddingBottom="10dp"
                android:layout_weight="1"
                android:background="@drawable/round_main_bg" >

                <RelativeLayout
                    android:id="@+id/lanjing_code_info"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="20dp" >

                    <ImageView
                        android:id="@+id/self_head"
                        android:layout_width="50dp"
                        android:layout_height="50dp"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:layout_marginTop="20dp"
                        android:background="@drawable/defaultuser" />

                    <TextView
                        android:id="@+id/self_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_marginLeft="20dp"
                        android:layout_marginTop="20dp"
                        android:layout_toRightOf="@+id/self_head"
                        android:gravity="center"
                        android:maxLines="2"
                        android:textColor="@color/article_black"
                        android:textSize="16sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/self_hospital"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/self_name"
                        android:layout_gravity="center_horizontal"
                        android:layout_marginLeft="20dp"
                        android:layout_marginTop="3dp"
                        android:layout_toRightOf="@+id/self_head"
                        android:textColor="@color/article_gray"
                        android:textSize="14sp" />
                </RelativeLayout>

                <ImageView
                    android:id="@+id/lanjing_code_img"
                    android:layout_width="200dp"
                    android:layout_height="200dp"
                    android:layout_below="@+id/lanjing_code_info"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:scaleType="fitCenter" />

                <TextView
                    android:id="@+id/lanjing_code_txt"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/lanjing_code_img"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:textColor="@color/number_blue"
                    android:textScaleX="1.5"
                    android:textSize="23sp" />

                <TextView
                    android:id="@+id/lanjing_tishi"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/lanjing_code_txt"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="扫一扫上面的二维码图案,加我蓝鲸医生"
                    android:textColor="@color/solid_gray"
                    android:textSize="14sp" />
            </RelativeLayout>

  保存方法    

private void saveErweima() {        File erweimaImg = FileUtilss.getErweimaImgFile(MyLanJingCode.this);        if (erweimaImg == null) {
            return;
        }
        //lanjing_code_rl.setBackgroundColor(getResources().getColor(R.color.solid_white));
        if (false == lanjing_code_rl.isDrawingCacheEnabled()) {
            lanjing_code_rl.setDrawingCacheEnabled(true);
        }
        lanjing_code_rl.buildDrawingCache();
        Bitmap bitmap = lanjing_code_rl.getDrawingCache();
     String path = erweimaImg.getAbsolutePath();
        FileOutputStream out = new FileOutputStream(path);
        bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
        out.flush();
        out.close();

     lanjing_code_rl.setDrawingCacheEnabled(false);

        MediaScannerConnection.scanFile(MyLanJingCode.this, new String[] { Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/" + path }, null, null);
        saveImgToGallery(path);
    }
public boolean saveImgToGallery(String fileName) {
        boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
        if (!sdCardExist)
            return false;

        try {

            ContentValues values = new ContentValues();
            values.put("datetaken", new Date().toString());
            values.put("mime_type", "image/jpg");
            values.put("_data", fileName);
            Application app = DoctorApplication.getInstance();
            ContentResolver cr = app.getContentResolver();
            cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }

  这样,就能在相册中看到保持的图片了。

时间: 2024-11-08 08:39:42

Android将view保存为图片并放在相册中的相关文章

【android】把view保存为图片的方法以及解决保存后图片背景变黑色的问题

上代码: public class MainActivity extends Activity { ImageView imgView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgView = (ImageView) findViewById(R.id.im

iOS开发中,获取图片之后保存或下载到本地相册中

#pragma mark 先获取本地图片或者网络图片 - (void)saveHeaderImageWith:(NSString *)path { UIImage *img = [UIImage imageWithContentsOfFile:path]; //这里img也可以是从网络获取的图片 [self saveImageToPhotos:img]; } #pragma mark 保存图片 - (void)saveImageToPhotos:(UIImage*)savedImage { UI

iOS 开发: 自定义相册, 保存多张图片到自定义相册中

1.自定义相册(兼容 iOS7 iOS8) - (void)viewDidLoad { //search all photo albums in the library    [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop)     {         //compare the names of the albums        

[Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印

    前一篇文章讲述了Android实现图片Matrix矩阵类缩放.旋转.对比度.亮度.饱和度处理,但是真正的图片软件都是使用触屏实现图片缩放.移动.添加水印等功能,所以该篇文章主要通过setOnTouchListener监听实现该功能.希望文章对大家有所帮助. 一.图片缩放实现     首先先简单介绍Android如何实现触屏缩放图片和移动图片,新建TouchImageViw工程.设计XML中activity_main.xml布局: <RelativeLayout xmlns:android

Android 自定义View使用示例(三)

转载 http://www.cnblogs.com/crashmaker/p/3549365.html From crash_coder linguowu [email protected] 前言: 通过Android 自定义View和Android 自定义View使用示例(二),我们知道了如何使用自定义的View,以及Android绘制View的理论基础,其包含三个过程,测量View大小(通过onMeasure()方法实现),计算View位置(通过onLayout()方法实现),最后开始绘制(

Android 自定义View之随机生成图片验证码

本篇文章讲的是Android自定义View之随机生成图片验证码,开发中我们会经常需要随机生成图片验证码,但是这个是其次,主要还是想总结一些自定义View的开发过程以及一些需要注意的地方. 按照惯例先看看效果图: 一.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 3.重写onMesure 4.重写onDraw 其中onMesure方法不一定要重写,但大部分情况下还是需要重写的 二.View 的几个构造函数 1.public CustomV

Android 自定义View 实例

Android 相关自定义View基本知识可以参考 Android View 自定义属性, 本篇博客博主将和大家一起实践Android自定义View,我们知道,在应用中最常见的就是TitleBar,他们形式上保持一致,一般均是左边回退按钮,中间说明文本,右边功能按钮.所以很适合抽取作为自定义View模板,废话少说,直接上干货. 自定义View-attrs <?xml version="1.0" encoding="utf-8"?> <resourc

第三讲 ------- 从系统中选择图片(拍照或从相册中取)

从系统中取图片这个是写安卓非常常见的一个功能,但是很多时候我们每次我们都去写一个还是比较麻烦的. 下面我就介绍我写的一个已经封装好的一个类,先看截图 从截图上看,功能很清晰,点击获取图片按钮,出来一个半透明的界面,具有用相机拍照获取图片和从相册中选择两种途径去获取图片. 看完截图直接上代码 package com.yixuan; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutput

Android 获取系统相册中的所有图片

Android 提供了API可获取到系统相册中的一些信息,主要还是通过ContentProvider 来获取想要的内容. 代码很简单,只要熟悉ContentProvider 就可以了. public static List<String> getSystemPhotoList(Context context) { List<String> result = new ArrayList<String>(); Uri uri = MediaStore.Images.Medi