Android how to open image and display it in second activity -
i working on app editing photos
i have button in first activity , imageview in second activity. when click button open gallery , able select image. selected image needs appear in imageview in second activity doesn't.
down below code not working,have idea wrong?
first activity:
package com.example.odabirslike; import android.net.uri; import android.os.bundle; import android.provider.mediastore; import android.app.activity; import android.content.intent; import android.database.cursor; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.view.menu; import android.view.view; import android.widget.button; import android.widget.imageview; public class pocetni extends activity { private button buttonloadimage; private static final int select_picture = 1; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_pocetni); this.buttonloadimage = (button) this.findviewbyid(r.id.pickbutton); buttonloadimage.setonclicklistener(new view.onclicklistener() { @override public void onclick(view arg0) { intent = new intent(); i.settype("image/*"); i.setaction(intent.action_get_content); startactivityforresult(intent.createchooser(i, "complete action using"), select_picture); } }); } protected void onactivityresult(int requestcode, int resultcode, intent data) { bitmap selectedphoto = null; super.onactivityresult(requestcode, resultcode, data); if (requestcode == select_picture && resultcode == result_ok && null != data) { uri selectedimage = data.getdata(); string [] filepathcolumn = {mediastore.images.media.data}; cursor cursor = getcontentresolver().query(selectedimage, filepathcolumn, null, null, null); cursor.movetofirst(); int columnindex = cursor.getcolumnindex(filepathcolumn[0]); string filepath = cursor.getstring(columnindex); selectedphoto = bitmapfactory.decodefile(filepath); cursor.close(); intent = new intent (pocetni.this, drugi.class); i.putextra("data",selectedphoto); startactivity(i); } } }
second activity:
package com.example.odabirslike; import android.os.bundle; import android.app.activity; import android.graphics.bitmap; import android.view.menu; import android.widget.imageview; public class drugi extends activity { imageview view = (imageview) findviewbyid(r.id.imageview1); @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_drugi); bitmap selectedphoto =(bitmap)this.getintent().getparcelableextra("data"); view.setimagebitmap(selectedphoto); } }
android manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.odabirslike" android:versioncode="1" android:versionname="1.0" > <uses-permission android:name="android.permission.write_external_storage" /> <uses-sdk android:minsdkversion="15" android:targetsdkversion="15" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.odabirslike.pocetni" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="com.example.odabirslike.drugi" android:label="drugi" > </activity> </application> </manifest>
it might bitmap big passed around that. why don't instead, put
string filepath = cursor.getstring(columnindex); i.putextra("data",filepath);
in first activity. , in second
string filepath =this.getintent().getstringextra("data"); bitmap selectedphoto = bitmapfactory.decodefile(filepath);
should less cumbersome app, @ least
Comments
Post a Comment