Android: Kép választása feltöltéshez

Android: Kép választása feltöltéshez
2011-03-22T11:22:28+01:00
2011-03-24T13:36:30+01:00
2022-11-21T06:35:39+01:00
Sherad
Sziasztok!

A problémám lehet nagyon egyszerű ám mivel mostanában kezdtem bele Android fejlesztésbe apró hülyeségeken akadok el :)

A szoftver kiválasztott képet töltene fel a szerveremre. ehhez már múködik majdnem minden (bejelentkezés, regisztracio ha kell, kép adatainak szerkesztése, gps adatok beolvasasa stb) am egy apró dologra nem tudok rajönni, mégpedig hogy a fenébe tudnám kiválasztani a képet amit fel akarok tölteni. Weben egyszerű ugyebár file tipusú input mező és csokolom. Ám itt létre tudok hozni mindenféle input mezőt csak file tipusut nem :( Ám lehet csak sikeresen átsiklok valami felett napok óta.

elolvastam sok tutoriált a feltöltéshez ám mindhol előre beolvasott filet használnak.

Valaki át tudna billenteni a problémámon?

Köszönöm....
Mutasd a teljes hozzászólást!
Hát azt nem tudom hogy tudsz-e belőle java.io.File objektumot csinálni (én nem tudom hogyan kell), de feltöltéshez neked nem ez kell, hanem egy InputStream, amiből kiolvasod. :)

android.net.Uri uri = data.getData(); InputStream in = context.getContentResolver().openInputStream(uri);
Mutasd a teljes hozzászólást!

  • Valami olyasmit keresel mint swingben a JFileChooser? Azaz grafikus felületen ki lehessen választani a képet? Ha igen, akkor azt meg kell írnod magad, mert nincs erre beépített lehetőség.
    Mutasd a teljes hozzászólást!
  • Lassan én is erre jutok, hogy nincs. Amugy ja valami olyasmi mint minden szoftvernel ami file feltoltest hasznal (Twitter, Facebook stb). De akkor nincs mese irnom kell egyet :) Csak elötte gondoltam felteszem a kerdest mert ha utana derul ki hogy van ilyen beepitett funkcio akkor a kardomba dolnek hahaha...
    Mutasd a teljes hozzászólást!
  • Nuh akkor ezt megválaszolom magamnak azért, hogy megmaradjon az utókornak:

    Létrehozunk egy Buttont aminek az eseménye ez lesz:

    startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);


    MAjd kényelmesen a kiválasztott képpel elkezdünk dolgozni:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == SELECT_IMAGE)
    if (resultCode == Activity.RESULT_OK) {
    Uri selectedImage = data.getData();
    // Itt bármit tehetünk már a kiválasztott képpel
    }
    }


    Mutasd a teljes hozzászólást!
  • Ezt jó tudni, köszi! :)
    Mutasd a teljes hozzászólást!
  • Pár napot olvastam meg küzdöttem vele mire rájöttem:))) Mondjuk azt nem értem, hogy ez nem jött elő eddig senkinek, átolvastam minden forumot a témában de sehol nem találtam megoldást rá... Szerintem a népek nagyrésze küzd azzal, hogy ír egy saját eseményvezérlést...
    Mutasd a teljes hozzászólást!
  • Upszala, a problemam egy kcisit tovabb gyuruzott.

    Ugyebar afenti dologgal megvan a content cime. Ami faja de hogy a bubanatba tudom elerni ezen a cimen keresztul magat ajpg filet? (a feltöltéshez ugyebár az eredeti filera van szuksegem)

    Az vagom hogy ez egy provider es valahogy ki lehet belole szedni honnan is jön, de van erre valami beepitett "get" or valami ?

    A Urim ez: content://media/external/images/media/1897

    Nah olvasok tovabb de azért bevéstem ide hétha valaki gyorsabb mint ahogy én olvasok....


    (bocsi az elutesekert Norveg billentyuzet)
    Mutasd a teljes hozzászólást!
  • Hát azt nem tudom hogy tudsz-e belőle java.io.File objektumot csinálni (én nem tudom hogyan kell), de feltöltéshez neked nem ez kell, hanem egy InputStream, amiből kiolvasod. :)

    android.net.Uri uri = data.getData(); InputStream in = context.getContentResolver().openInputStream(uri);
    Mutasd a teljes hozzászólást!
  • Wow el is fogadtam és megjegzem legközelebb nem kuzdok ezzel az uri-val. Ám éjjel addig bigarasztam refet mig talaltam egy ilyet:

    public String getRealPathFromURI(Uri contentUri) {

    // can post image
    String [] proj={MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery( contentUri,
    proj, // Which columns to return
    null, // WHERE clause; which rows to return (all rows)
    null, // WHERE clause selection arguments (none)
    null); // Order-by clause (ascending by name)
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();

    return cursor.getString(column_index);
    }

    Szoval ha ilyenbe utkoztok / utkozol jo tudni ezt :) Amugy koszi a segitseget mester!!!!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd