После того, как вы восстановили изображение пользователя, как сохранить его в Drawable - PullRequest
0 голосов
/ 24 января 2019

Как только вы восстановили изображение пользователя, как сохранить его в приложении в приложении drawable?Для использования в других действиях.

Извлеките изображение из галереи пользователя и поместите его в ImageView:

public class Profil extends AppCompatActivity {

private Button btnImport;
public ImageView selectedImg;
static final int RESULT_LOAD_IMG = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.profil);

    ImageView btn_supervisor = findViewById(R.id.btn_supervisor);
    ImageView btn_add = findViewById(R.id.btn_add);
    ImageView btn_profile = findViewById(R.id.btn_profile);

    btnImport = findViewById(R.id.modifie_button);
    selectedImg = findViewById(R.id.modifie_image);


    btnImport.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            startActivityForResult(photoPickerIntent, RESULT_LOAD_IMG);
        }
    });
}
@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);



    if (resultCode == RESULT_OK) {
        try {
            final Uri imageUri = data.getData();
            final InputStream imageStream = getContentResolver().openInputStream(imageUri);
            final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
            selectedImg.setImageBitmap(selectedImage);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "Une erreur s'est produite",Toast.LENGTH_LONG).show();

        }

    }else {
        Toast.makeText(getApplicationContext(),"Vous n'avez pas choisi d'image", Toast.LENGTH_LONG).show();

    }
}

}

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 24 января 2019

вы можете использовать BitmapDrawable для достижения этой цели

// Преобразовать растровое изображение в рисуемое.

Drawable drawable = new BitmapDrawable (context.getResources (), bitmap);

0 голосов
/ 24 января 2019

Вы можете преобразовать свое растровое изображение в байтовый массив и сохранить его в базе данных области.

следующим образом:

Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

Примечание: Realm поддерживает следующие типы полей: boolean, byte, short, ñnt, long, float, double, String, Date и byte []

Вы можете использовать this для конфигурации области в android.

И вы можете преобразовать изображение в растровое изображение :

imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();
0 голосов
/ 24 января 2019

Вы никогда не должны сохранять рисунок / растровое изображение для использования в других действиях.Вместо этого вы можете сохранить Uri файла изображения в некоторой переменной в своем классе приложения или в некотором статическом держателе свойств, а затем можете извлечь растровое изображение из этого Uri во всех ваших действиях.

...