JavaおよびAndroid Studioでアプリケーションを開発しています。

base64でJSONを使用して画像を取得し、pngに変換していました。

decodedString = Base64.decode(tipo.getString("imagem"), Base64.DEFAULT);
decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
    salvarImagem(caminho+"/tipos/",decodedByte,tipo.getString("nome"));

public static void salvarImagem(String caminho, Bitmap bmp, String nome){
        try {
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);

            byte[] bytes = stream.toByteArray();
            File folder = new File(Environment.getExternalStorageDirectory() + "/"+pastaProjeto+caminho);
            if (!folder.exists()) {
                folder.mkdir();
            }
            String nomeArquivo = Environment.getExternalStorageDirectory() + "/"+pastaProjeto+caminho+nome+".png";

            FileOutputStream fos = new FileOutputStream(nomeArquivo);
            fos.write(bytes);
            fos.close();

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

そうすれば、画像を読み込むたびに、Drawableを作成する必要があります(ビットマップを読み込んで変換する)。

Drawable d = new BitmapDrawable(act.getResources(),getLoacalBitmap(caminho));

public static Bitmap getLoacalBitmap(String url) {
        try {
            FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory()+"/"+url);
            return BitmapFactory.decodeStream(fis);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

しかし、機能していません。ビットマップはnullです。

何が最善かを知りたいです。pngの代わりにドロウアブルを保存するか、私がやっているようにしたいです。

ドロアブル形式で保存する方が良い場合、フローを生成する方法がわからないので助けが必要です...私がやっている方が良い場合、関数がnull Drawableを返す理由を理解するのに助けが必要です。