如何通过点击图片打开Google Map Android Studio
我在活动中有一张图像(地图图像),我想在手机上打开具有特定地理坐标的 Google 地图。我的以下代码运行良好,并且我的应用程序正在运行,但是当我单击图像时,我的应用程序正在重新启动。我检查了其他问题,我的代码看起来不错,所以我不知道可能出了什么问题。
MilleActivity.java
public class MilleActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mille);
ImageView map = (ImageView) findViewById(R.id.mapQC);
map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openMap();
}
});
}
private void openMap() {
String uri = String.format("geo:46.81402244651992, -71.220484138461");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.setPackage("com.google.android.maps");
startActivity(intent);
}
}
//}
activity_mille.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
android:layout_height="match_parent"
tools:context="MilleActivity"
android:background="@color/white"
android:paddingTop="50dp">
<ImageView
android:layout_width="350dp"
android:layout_height="350dp"
android:gravity="center"
android:scaleType="centerInside"
android:src="@drawable/mille"
android:layout_centerHorizontal="true"
tools:layout_editor_absoluteY="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="350dp"
android:text="Film: 1987"
android:textColor="#000"
android:textSize="25sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Réalisateur: Ricardo Trogi"
android:textColor="#000"
android:textSize="25sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:text="Lieu: Québec"
android:textColor="#000"
android:textSize="18sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Anecdote: Ricardo Trogi (réalisateur)"
android:textColor="#000"
android:textSize="18sp" />
<ImageView
android:id="@+id/mapQC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:baselineAlignBottom="true"
android:scaleType="centerInside"
android:src="@drawable/map" />
</LinearLayout>
</RelativeLayout>
I have a image (image of a map) in a activity and I want to open Google Map on the phone with certain geo coordinates. I have this following code that run fine and my application is lunching, but when I click on the image my app is restarting. I checked other questions and my code seems fine so I don't have any idea of what could be wrong.
MilleActivity.java
public class MilleActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mille);
ImageView map = (ImageView) findViewById(R.id.mapQC);
map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openMap();
}
});
}
private void openMap() {
String uri = String.format("geo:46.81402244651992, -71.220484138461");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.setPackage("com.google.android.maps");
startActivity(intent);
}
}
//}
activity_mille.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
android:layout_height="match_parent"
tools:context="MilleActivity"
android:background="@color/white"
android:paddingTop="50dp">
<ImageView
android:layout_width="350dp"
android:layout_height="350dp"
android:gravity="center"
android:scaleType="centerInside"
android:src="@drawable/mille"
android:layout_centerHorizontal="true"
tools:layout_editor_absoluteY="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="350dp"
android:text="Film: 1987"
android:textColor="#000"
android:textSize="25sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Réalisateur: Ricardo Trogi"
android:textColor="#000"
android:textSize="25sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:text="Lieu: Québec"
android:textColor="#000"
android:textSize="18sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Anecdote: Ricardo Trogi (réalisateur)"
android:textColor="#000"
android:textSize="18sp" />
<ImageView
android:id="@+id/mapQC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:baselineAlignBottom="true"
android:scaleType="centerInside"
android:src="@drawable/map" />
</LinearLayout>
</RelativeLayout>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个代码
你可以替换你想要的
latitude
和longitude
try this code
You can replace
latitude
andlongitude
you want