1
でImageViewのからAndroid携帯に保存する画像だから私はのように見えること、ここで、このフラグメントを持っている:私は何をしようとしているアンドロイド:フラグメント
は自分の携帯電話に画像を保存している(中ファイルのダウンロードやギャラリー、または...)。
Stackoverflowとインターネットをスキャンしましたが、コードが機能していません。私は間違いはしませんが、私の電話に写真を保存していません。何が問題なの?私が使用したコードはStackoverflowから来ています。
public class MainFragment extends Fragment {
Button download;
ImageView DownloadImage;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_main, container, false);
DownloadImage = (ImageView) v.findViewById(R.id.imageToDownload);
download = (Button) v.findViewById(R.id.buttonDownloadImage);
Picasso.with(getActivity()).load("http://192.168.200.2/android_login_api/images/actie.png").into(DownloadImage);
download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveImageLocally(DownloadImage);
}
});
return v;
}
private String saveImageLocally(ImageView iv) {
iv.buildDrawingCache();
Bitmap bmp = iv.getDrawingCache();
File storageLoc = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); //context.getExternalFilesDir(null);
File file = new File(storageLoc, "test" + ".jpg");
try{
FileOutputStream fos = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
scanFile(getActivity(), Uri.fromFile(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "true";
}
private static void scanFile(Context context, Uri imageUri){
Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
scanIntent.setData(imageUri);
context.sendBroadcast(scanIntent);
}
}
どうもありがとう、どういうばかげたミスマック私のそれらのpermitionsを忘れてしまいます。ありがとう! –
@KahnKah問題ありません。例外をトレースし、ファイルを作成/処理する際にログに記録することをお勧めします。多分あなたはより多くの問題を得るでしょう。あなたのlogcatに1つの問題がある場合、簡単に見つけることができます。 –