API'den resim alma
7
●362
- 29-12-2019, 15:46:41Bitmap-Base64 konularına bakabilirsiniz. Ya da storage konusunu araştırabilirsiniz.Örn firebase storage, azure storage.iyi çalışmalar
- 29-12-2019, 15:49:08@mcanerkocadag; öncelikle cevabın için teşekkür ederim peki bir sunucu kullanmak mı daha mantıklı yoksa firebase azure gibi platformları paralı olarak kullanıp buralardan veri çekmek mi daha mantıklı yani en stabil çözüm nedir peki
- 29-12-2019, 16:13:47En stabil ve doğru olanı storage kullanmak tabiki. Ama bu ayrı bir maliyet oluşturuyor size.O yüzden maliyet mi performans mı tercihi sizin yapmanız gerekiyor.Bu arada storage kullandığınızda yine bir apı servis yazıyorsunuz sadece resmi storage blob saklıyorsunuz ve oradan aldığınız id link vs neyi istiyorsanız servis ile DB de tutuyorsunuz. Mantık bu şekilde arsştırdığınızda daha çok bilgiye ulaşırsınız. İyi çalışmalar
- 31-12-2019, 16:15:57@mcanerkocadag; üstad cevabın için teşekkürler peki bir konu hakkında daha sorabilir miyim? sorum şu;
firebase daha önce yapı oluşturmadım ilişkisel bir tablo yapısı oluşturucam yani örneğin kategori ve urun tablosu var ve ben urun tablosunda ki kategori sütununu kategoride ki unique id ile eşleştiricem. firebase de bunun design oluştururken nasıl oluşturmam gerekli?
@mcanerkocadag; yani sql de ki gibi bir yapı mı oluşturuluyor farklı bir yapısı mı var? - 06-01-2020, 21:12:55Eğer sorunuza cevap bulamadıysanız. https://discord.gg/qrREuAAlıntı
- 08-01-2020, 11:03:49@emirkrgz; Ne demek rica ederim siz zor olanı seçmişsiniz. Tabi projenin ileri ki aşamalarında firebase fiyat politikası belki bizim ülkemizde sorun yaratıyor olabilir. Keşke react native bilseydim size yardımcı olmaktan memnuniyet duyardım.
public class ImageSaveTask extends AsyncTask<String, Void, Void> { private Context context; private TebriKarti tebriKarti; public ImageSaveTask(Context context, TebriKarti tebriKarti) { this.context = context; this.tebriKarti = tebriKarti; } @Override protected Void doInBackground(String... params) { try { File f = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink().substring(0, tebriKarti.getLink().indexOf("/")) + "/"); //Eğer dosya yoksa oluştur if (!f.exists()) { f.mkdirs(); } File soundFile = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink() + ".jpg"); if (!soundFile.exists()) { int count; URL url = new URL(context.getResources().getString(R.string.api_tebrik_karti) + tebriKarti.getLink() + ".jpg"); URLConnection conection = url.openConnection(); conection.connect(); InputStream input = new BufferedInputStream(url.openStream(), 8192); File dowlandFile = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink() + ".jpg"); FileOutputStream outStream; outStream = new FileOutputStream(dowlandFile); byte[] data = new byte[4096]; while ((count = input.read(data)) != -1) { outStream.write(data, 0, count); } outStream.flush(); outStream.close(); input.close(); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); File imgFile = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink() + ".jpg"); Bitmap bitmap = addWaterMark(imgFile); paylasMesaj(bitmap); }}private Bitmap addWaterMark(File file) { Bitmap src = BitmapFactory.decodeFile(file.getPath()); int w = src.getWidth(); int h = src.getHeight(); Bitmap result = Bitmap.createBitmap(w, h, src.getConfig()); Canvas canvas = new Canvas(result); canvas.drawBitmap(src, 0, 0, null); Bitmap waterMark = BitmapFactory.decodeResource(context.getResources(), R.drawable.main_icon); Bitmap resizedBitmap = Bitmap.createScaledBitmap( waterMark, 100, 100, false); canvas.drawBitmap(resizedBitmap, w - 100, h - 100, null); return result;}private void paylasMesaj(Bitmap bitmap) { Intent paylasIntent = new Intent(Intent.ACTION_SEND); paylasIntent.setType("image/*"); paylasIntent.putExtra(Intent.EXTRA_STREAM, getImageUri(context, bitmap)); context.startActivity(Intent.createChooser(paylasIntent, getSTR(R.string.app_name)));}private Uri getImageUri(Context inContext, Bitmap inImage) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); return Uri.parse(path);}
En azından size java ile bir apiden/linkten resmi nasıl çekebileceğiniz java kodunu atabilirim.