im attempting write android app allows select image gallery, via intent, analysed facedetector , displayed in same view. i'm having trouble displaying image far. can help?? in advance
xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/linearlayout" > <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <button android:id="@+id/loadimage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="load image" /> <textview android:id="@+id/targeturi" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <view class="com.example.facedetectionstaticcamera.myview" android:id="@+id/analysedimage" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </linearlayout> mainactivity
package com.example.facedetectionstaticcamera; import java.io.filenotfoundexception; import android.app.activity; import android.content.intent; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.net.uri; import android.os.bundle; import android.util.log; import android.view.view; import android.widget.button; import android.widget.linearlayout; import android.widget.textview; public class mainactivity extends activity { public static final int media_type_image = 1; textview texttargeturi; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button buttonloadimage = (button)findviewbyid(r.id.loadimage); texttargeturi = (textview)findviewbyid(r.id.targeturi); buttonloadimage.setonclicklistener(new button.onclicklistener(){ @override public void onclick(view view){ intent intent = new intent(intent.action_pick, android.provider.mediastore.images.media.external_content_uri); startactivityforresult(intent, 0); } }); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if (resultcode == result_ok){ uri targeturi = data.getdata(); texttargeturi.settext(targeturi.tostring()); bitmap bitmap; try { bitmapfactory.options bitmapfactoryoptionsbfo = new bitmapfactory.options(); bitmapfactoryoptionsbfo.inpreferredconfig = bitmap.config.rgb_565; bitmap = bitmapfactory.decodestream(getcontentresolver().openinputstream(targeturi), null, bitmapfactoryoptionsbfo); linearlayout v = (linearlayout) findviewbyid(r.id.linearlayout); myview newview = new myview(this, null); myview.setbitmap(bitmap); v.addview(newview); bitmap.recycle(); } catch (filenotfoundexception e) { e.printstacktrace(); } } } } myview
package com.example.facedetectionstaticcamera; import java.io.file; import com.example.facedetectionstaticcamera.r; import android.content.context; import android.content.intent; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.graphics.canvas; import android.graphics.color; import android.graphics.paint; import android.graphics.pointf; import android.media.facedetector; import android.media.facedetector.face; import android.os.environment; import android.util.attributeset; import android.util.log; import android.view.view; import android.widget.imageview; public class myview extends view{ static bitmap mybitmap; public static void setbitmap(bitmap bitmap) { mybitmap = bitmap; } public myview(context context, attributeset attrs) { super(context, attrs); } @override public void ondraw(canvas canvas) { canvas.drawbitmap(mybitmap, 0, 0, null); } }
pls can try adding invalidate() call:
public static void setbitmap(bitmap bitmap) { mybitmap = bitmap; this.invalidate(); }
Comments
Post a Comment