如何通过单击图像打开 Google 地图 Android Studio
How to open Google Map by clicking on a image Android Studio
我在 activity 中有一张图片(地图的图片),我想在 phone 中打开具有特定地理坐标的 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>
试试这个代码
String latitude = "46";
String longitude = "71";
String uri = "https://www.google.com.tw/maps/place/" + latitude + "," + longitude;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);
你可以替换你想要的latitude
和longitude
我在 activity 中有一张图片(地图的图片),我想在 phone 中打开具有特定地理坐标的 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>
试试这个代码
String latitude = "46";
String longitude = "71";
String uri = "https://www.google.com.tw/maps/place/" + latitude + "," + longitude;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);
你可以替换你想要的latitude
和longitude