Я работаю над своим первым приложением обоев, и у меня возникла небольшая проблема, я думаю:)
Когда я загружаю из приложения, сохраненное "изображение" имеет неизвестный формат (см. Скриншот), not .png, jpeg et c.
Изображения загружены в firebase
Я прикрепил весь свой код ниже.
Не могли бы вы представить, почему картинки сохраняются так?
Заранее спасибо!
public class MyUtils {
public static int counter = 0;
public static void setBgOrDownload(String urlString, final Activity activity, final boolean download) {
Picasso.get().load(urlString).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
if (download) {
saveImageBitmap(activity, urlString,bitmap);
} else {
new Thread(() -> {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(activity);
try {
wallpaperManager.setBitmap(bitmap);
((PreviewActivity) activity).wallpaperSet(true);
} catch (IOException e) {
e.printStackTrace();
((PreviewActivity) activity).wallpaperSet(true);
}
}).start();
}
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
public static void setHomeOrLock(String urlString, final Activity activity, boolean lockScreen) {
Picasso.get().load(urlString).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
new Thread(() -> {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(activity);
try {
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N)
{
if(lockScreen)
{
wallpaperManager.setBitmap(bitmap,null,true,FLAG_LOCK);
}else{
wallpaperManager.setBitmap(bitmap,null,true,FLAG_SYSTEM);
}
((PreviewActivity) activity).homeOrLockSet(lockScreen);
}else{
wallpaperManager.setBitmap(bitmap);
((PreviewActivity) activity).wallpaperSet(true);
}
} catch (IOException e) {
e.printStackTrace();
activity.runOnUiThread*(new Runnable()* {
@Override
public void run() {
Toast.makeText(activity, "Something went wrong", Toast.LENGTH_SHORT).show();
}
});
}
}).start();
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
public static void saveImageBitmap(Activity context, String url, Bitmap bitmap) {
AtomicBoolean isFilePresent = new AtomicBoolean(false);
String myDir = Environment.getExternalStorageDirectory().toString() + "/" + "Premium Wallpapers");
File fileDir = new File(myDir);
if (!fileDir.exists()) {
fileDir.*mkdir();*
}
url = url.substring(url.lastIndexOf("/") + 1);
File newFile = new File(myDir, "Wallpaper_" + url);
File[] filesList = fileDir.listFiles();
if (filesList != null) {
ArrayList<File> files = new ArrayList<>(Arrays.asList(filesList));
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
Optional<File> result = files.stream().filter(file -> file.getAbsolutePath().equals(newFile.getAbsolutePath())).findFirst();
result.ifPresent(file -> isFilePresent.set(true));
} else {
for (File file : files) {
if (file.getAbsolutePath().equals(newFile.getAbsolutePath())) {
isFilePresent.set(true);
break;
}
}
}
if (!isFilePresent.get()) {
saveImageIntoMemory(context,bitmap, newFile,true);
} else {
Toast.makeText(context, "Already Downloaded", Toast.LENGTH_SHORT).show();
}
}
}
private static void saveImageIntoMemory(Activity context, Bitmap bitmap, File newFile, boolean download) {
FileOutputStream ostream = null;
try {
newFile.createNewFile();
ostream = new FileOutputStream(newFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, ostream);
ostream.flush();
ostream.close();
if(download)
{
((PreviewActivity) context).downloadComplete(true);
}else{
Toast.makeText(context, "Image is saved", Toast.LENGTH_SHORT).show();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
((PreviewActivity) context).downloadComplete(false);
} catch (IOException e) {
e.printStackTrace();
((PreviewActivity) context).downloadComplete(false);
}
}
public static void getInternalFile(Activity context, String url) throws IOException {
File myDir = context.getFilesDir();
File file = new File(myDir, "tempFile.jpg");
file.*createNewFile();*
Picasso.get().load(url).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
FileOutputStream ostream = null;
try {
file.createNewFile();
ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, ostream);
ostream.flush();
ostream.close();
CropImage.activity(Uri.fromFile(file)).start(context);
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.d("lksjdf",e.toString());
} catch (IOException e) {
e.printStackTrace();
Log.d("lksjdf",e.toString());
}
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
public static Bitmap getContactBitmapFromURI(Context context, Uri uri) {
try {
InputStream input = context.getContentResolver().openInputStream(uri);
if (input == null) {
return null;
}
return BitmapFactory.decodeStream(input);
}
catch (FileNotFoundException e)
{
}
return null;
}
public static void saveCropedImage(Activity activity, String url, Bitmap bitmap)
{
String myDir = Environment.*getExternalStorageDirectory().toString() + "/" + "Premium Wallpapers" );*
File fileDir = new File(myDir);
if (!fileDir.exists()) {
fileDir*.mkdir();*
}
url = url.substring(url.lastIndexOf("/") + 1);
File newFile = new File(myDir, "Wallpaper_Crop_" + url);
saveImageIntoMemory(activity,bitmap,newFile,false);
}
public static void shareApp(String content, Context context) {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(Intent.EXTRA_TEXT, content);
context.startActivity(Intent.createChooser(sharingIntent, "Share Text"));
}
public static boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.*getActiveNetworkInfo()*;
//should check null because in airplane mode it will be null
return (netInfo != null && netInfo.isConnected());
}
}
выделенный текст ![enter image description here](https://i.stack.imgur.com/t6duV.jpg)