我正在开发一个聊天应用程序.用户可以发送与whatsapp相同的位置. (我不是在谈论共享实时定位功能).对于这个要求,我使用Google place picker API.在这里,我附上了一个代码.
的build.gradle
implementation 'com.Google.androID.gms:play-services-maps:10.2.0'implementation 'com.Google.androID.gms:play-services:10.2.0'
AndroIDManifest.xml中
<Meta-data androID:name="com.Google.androID.geo.API_KEY" androID:value="YOUR_API_KEY" /><Meta-data androID:name="com.Google.androID.gms.version" androID:value="@integer/Google_play_services_version" />
在java文件中
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); try { dismiss(); mActivity.startActivityForResult(builder.build(currentFragment.getActivity()), PLACE_PICKER_REQUEST); } catch (GooglePlayServicesRepairableException e) { Log.e(this.getClass().getSimplename(),"GooglePlayServicesRepairableException"); e.printstacktrace(); } catch (GooglePlayServicesNotAvailableException e) { Log.e(this.getClass().getSimplename(),"GooglePlayServicesNotAvailableException"); e.printstacktrace(); }
这就是处理onActivityResult方法的方法
@OverrIDe protected voID onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PLACE_PICKER_REQUEST) { if (resultCode == RESulT_OK) { Place place = PlacePicker.getPlace(this, data); } } }
现在选择该位置后想要显示它类似于这样.
那我该怎么做呢?
解决方法:
布局文件:
<?xml version="1.0" enCoding="utf-8"?><androID.support.v7.Widget.CardVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_margin="10dp" app:cardBackgroundcolor="#e0ffc6" app:cardCornerRadius="5dp"> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:orIEntation="vertical"> <ImageVIEw androID:layout_wIDth="200dp" androID:layout_height="150dp" androID:padding="5dp" androID:scaleType="fitXY" tools:src="@tools:sample/backgrounds/scenic" /> <TextVIEw androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:padding="10dp" androID:text="Location" androID:textcolor="#000000" /> <linearLayout androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="end" androID:layout_marginRight="5dp" androID:gravity="end" androID:orIEntation="horizontal"> <TextVIEw androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:padding="5dp" androID:text="11:00 AM" androID:textcolor="#000000" androID:textSize="10sp" /> <ImageVIEw androID:layout_wIDth="10dp" androID:layout_height="10dp" androID:layout_gravity="center_vertical" tools:src="@tools:sample/avatars" /> </linearLayout> </linearLayout></androID.support.v7.Widget.CardVIEw>
将此布局文件用作recyclervIEw的项目文件.
对于地图图像:
使用这个答案:@L_419_2@
为了得到lat long和地名:
place.getLatLng()获取纬度和经度
place.getname()获取要在地图底部显示的地名
对于使用recyclervIEw的聊天应用程序演示可以通过以下教程:
> https://github.com/QuickBlox/ChatMessagesAdapter-android
> RecyclerView for chat app
> https://www.dev2qa.com/android-chat-app-example-using-recyclerview/
以上是内存溢出为你收集整理的如何在程序中以与android中的whatsapp相同的方式在聊天窗口中显示位置信息?全部内容,希望文章能够帮你解决如何在程序中以与android中的whatsapp相同的方式在聊天窗口中显示位置信息?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)