Son Forum Aktiviteleri

2
Tümünü Gör

onActivityResult değer döndürme sorunu

Arkadaşlar merhaba, android geliştirmede yeni olduğumu belirtmek isterim ve hemen soruma geçiyorum. Basit bir uygulama yaptım ve uygulamamda 2 adet buton var. Birincisi cihazın galerisine giderek seçilen resim dosyasını imageview'e aktarmakta, ikinci buton ise kamera ile çektiğim resmi imageview'e aktarmakta. Sorun ise kullanıcı resim seçmeden ya da fotoğraf çekmeden geri tuşuyla ana ekran döndüğünde hata ile karşılaşıyorum.


"protected void onActivityResult(int requestCode, int resultCode, Intent data)" içerisindeki resultCode değerlerini yazdırdığımda, resim seçimi ya da foto çekimi yapıldığında değeri -1 iken yapılmadığında 0 (sıfır) olmakta. if() bloğu ile bu sonuçlardan herhangi bir çözüm üretemedim. Sorun "data" bilgisinin boş gelmesinden kaynaklı gibi çünkü requestCode değerlerini rasgele değiştirdiğimde program hatasız ana sayfaya dönebiliyor.

İşte kodlar:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);      

 if (requestCode==10) {
        ImageView vesikalik = (ImageView) findViewById(R.id.vesikalik);
        Bitmap bitmap = null;

        if (bitmap != null)
            bitmap.recycle

        try {
            InputStream stream = getContentResolver().openInputStream(data.getData());
            bitmap = BitmapFactory.decodeStream(stream);
            stream.close();
            vesikalik.setImageBitmap(bitmap);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    if(requestCode==33) {
        Bitmap image = (Bitmap) data.getExtras().get("data");

        ImageView resim = (ImageView) findViewById(R.id.vesikalik);
        resim.setImageBitmap(image);
    }
}

 

picture-76353-1519067005.jpg
8 yıl 6 ay önce yanıtladın

Android Studio Çözünürlük Sorunu?

picture-76353-1519067005.jpg
06 Nisan 2016 tarihinde cevaplandı

Öncelikle kolay gelsin, programınızda uygulamanın çalışacağı donanımın ekran çözünürlük değerlerini alarak buna göre ara yüz elemanlarının boyutlarını belirleyebilirsiniz.

Ekranı piksel olarak değerlendirmek için;


Display display = getWindowManager().getDefaultDisplay();

int width = display.getWidth();

int height = display.getHeight();

 

Ekranı inç olarak değerlendirmek için de;


DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

double x = Math.pow(dm.widthPixels/dm.xdpi,2);

double y = Math.pow(dm.heightPixels/dm.ydpi,2);

double screenInches = Math.sqrt(x+y);

Log.d("debug","Screen inches : " + screenInches);

Umarım yardımcı olmuşumdur ;)