Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách ghi file ảnh vào bộ nhớ trong Android


Ví dụ này minh họa cách ghi file ảnh vào bộ nhớ trong (internal storage) trên Android.

Bước 1: Tạo dự án mới

Tạo dự án mới trong Android Studio: File → New Project, điền thông tin cần thiết.

Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
    xmlns:tools = "https://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    tools:context = ".MainActivity"
    android:orientation = "vertical">
    <Button
        android:id = "@+id/save"
        android:text = "Lưu"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content" />
</LinearLayout>

Giao diện chỉ có một nút. Khi nhấn nút, ảnh sẽ được lưu vào bộ nhớ trong.

Bước 3: Code MainActivity.java

package com.example.andy.myapplication;
import android.content.Context;
import android.content.ContextWrapper;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import java.io.File;
import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {
    Button save;
    Bitmap bitmap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Lấy ảnh từ drawable (giả sử có file mario.png trong res/drawable)
        Drawable drawable = getResources().getDrawable(R.drawable.mario);
        bitmap = ((BitmapDrawable) drawable).getBitmap();
        save = findViewById(R.id.save);
        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContextWrapper cw = new ContextWrapper(getApplicationContext());
                // Tạo thư mục riêng tư 'imageDir'
                File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
                File file = new File(directory, "UniqueFileName" + ".jpg");
                if (!file.exists()) {
                    Log.d("path", file.toString());
                    FileOutputStream fos = null;
                    try {
                        fos = new FileOutputStream(file);
                        // Nén bitmap định dạng JPEG chất lượng 100%
                        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
                        fos.flush();
                        fos.close();
                    } catch (java.io.IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
    }
}

Chạy ứng dụng

Kết nối thiết bị, chạy từ Android Studio. Màn hình hiển thị giao diện mặc định.

Cách ghi file ảnh vào bộ nhớ trong Android

Nhấn nút Lưu để lưu ảnh vào bộ nhớ trong như hình dưới:

Cách ghi file ảnh vào bộ nhớ trong Android