A photo
There are two options for photo-melting and cloud
1 The camera key class that comes with the SDK Kit package: Camerainputprovider
This type of click is to evoke the takingpicturesactivity feature is to take a photo after the tick is completed there will be a preview interface this scenario if you click on some models on the tick and no response is because
Some models evoke the system camera and then recycle the following stack resources have been done onsaveinstancestate life cycle save instantaneous state but this is still the case
Post implementation code below if you have a developer who knows the ultimate solution to this problem, please leave a message or contact the author
public class Takingpicturesactivity extends Activity implements View.onclicklistener {private final static int REQUEST _camera = 0x2; Private ImageView mimage; Private Uri Msavedpicuri; @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Requestwindowfeature (Window.feature_no_title); Setcontentview (R.layout.rc_ac_camera); button Cancel = (Button) Findviewbyid (R.id.rc_back); button send = (Button) Findviewbyid (r.id.rc_send); Mimage = (ImageView) Findviewbyid (r.id.rc_img); Cancel.setonclicklistener (this); Send.setonclicklistener (this); RLOG.D (This, "OnCreate", "savedinstancestate:" + savedinstancestate); if (savedinstancestate = = null) {Startcamera (); } else {String str = savedinstancestate.getstring ("Photo_uri"); if (str! = null) {Msavedpicuri = Uri.parse (str); try { Mimage.setimagebitmap (Bitmaputil.getresizedbitmap (this, Msavedpicuri, 960, 960)); } catch (IOException e) {e.printstacktrace (); }}}} @Override public void onconfigurationchanged (Configuration newconfig) {Super.on Configurationchanged (Newconfig); } @Override public void OnClick (View v) {Final file File = new file (Msavedpicuri.getpath ()); if (!file.exists ()) {finish (); if (v.getid () = = R.id.rc_send) {if (Msavedpicuri! = null) {Intent data = new Intent () ; Data.setdata (Msavedpicuri); Setresult (RESULT_OK, data); } finish (); } else if (v.getid () = = R.id.rc_back) {finish (); }} private void Startcamera () {Intent Intent = new Intent (); Intent.setaction (mediastore.action_image_capture); File Path = Environment.getexternalstorAgepublicdirectory (Environment.directory_pictures); String name = System.currenttimemillis () + ". jpg"; File File = new file (path, name); Msavedpicuri = uri.fromfile (file); RLOG.D (This, "Startcamera", "output pic uri =" + Msavedpicuri); Intent.putextra (Mediastore.extra_output, Msavedpicuri); Intent.addcategory (Intent.category_default); Startactivityforresult (Intent, Request_camera); } @Override public void Onactivityresult (int requestcode, int. ResultCode, final Intent data) {RLOG.D (this, " Onactivityresult "," ResultCode = "+ ResultCode +", intent= "+ data); if (resultcode! = ACTIVITY.RESULT_OK) {finish (); Return } switch (requestcode) {case Request_camera:if (ResultCode = = result_canceled) { Finish (); LOG.E ("Takingpicturesactivity", "result_canceled"); } if (Msavedpicuri! = null && ResultCode = = ACTIVITY.RESULT_OK) {try{Mimage.setimagebitmap (bitmaputil . Getresizedbitmap (This, Msavedpicuri, 960, 960)); } catch (IOException e) {e.printstacktrace (); }} break; Default:return; } super.onactivityresult (Requestcode, ResultCode, data); } @Override protected void Onrestoreinstancestate (Bundle savedinstancestate) {//Restore LOG.E ("takingpictu Resactivity "," onrestoreinstancestate "); Msavedpicuri = Uri.parse (savedinstancestate.getstring ("Photo_uri")); Super.onrestoreinstancestate (savedinstancestate); } @Override public void Onsaveinstancestate (Bundle outstate) {//Save LOG.E ("Takingpicturesactivity", "on Saveinstancestate "); Outstate.putstring ("Photo_uri", msavedpicuri.tostring ()); Super.onsaveinstancestate (outstate); }}
2 Newcamerainputprovider in the Demo code
When this kind of photo is finished, the direct tick indicates that there is no preview interface code for the session interface. Currently in the Cloud website Demo has open source Io/rong/app/provider/newcamerainputprovider.java
If you choose the switch mode of scenario two:
1 Copy the Io/rong/app/provider/newcamerainputprovider.java in the Demo to your project note some details of resource files, etc.
2 Setting the custom session interface enter the bar + number feature to customize the registration of Newcamerainputprovider details see
Here's an explanation of the first array that you need to show which function modules are set below the code that you need to define the array function module in which session types are shown here to remind the voice function
VoIP only supports single-to-single setup this time after Rongim.init initialization
Okay, all right. The above article has made a detailed narration of the two schemes and usages of taking pictures. If there are any details that are not mentioned welcome message Spit Groove
Two albums
Current Cloud album also provides two kinds of solution support: JPEG PNG jpg bmp and other picture formats
1:SDK Kit default comes with Imageinputprovider
Functional analysis: The effect is very smooth loading speed also quickly support unlimited multi-select picture send and preview, the disadvantage is that all the pictures in the phone in a GridView display
No multiple folder selection and recent photos
2:demo Photo Package under code Open source Core class Photocollectionsprovider
Function Analysis: Using Lruche cache technology to speed up the loading speed of the space-changing fast support multi-photo folder selection Support Recent photo-pinned sort codes open source can be based on their
Changes to business requirements
How to use photo album Scenario 2:
1 Copy the entire package of the Demo photo to your project modify the package name remember that the resource files and pictures are also copied
2 Refer to the picture that is called the image settings Photocollectionsprovider can be
Picture selection Here there is a robust problem that is not resolved interested can refer to http://blog.csdn.net/qq_19986309/article/details/47080287
If there is a solution to pre-verify the validity of the picture please contact the author or leave a message to be appreciated
RELATED LINKS finally can be based on the + Number function module to customize their own to develop such as photo album map and other functions if there is a better development of functional modules such as Baidu High-German map positioning or more optimization
Photo Album selection of modules willing to open source benefits broad cloud developers please contact me message welcome pull request! end~
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Melt Cloud Android SDK photo, image selector scheme analysis