当前位置:操作系统 > 安卓/Android >>

Android开源代码解读の地图照片应用Panoramio的实现详解(三)

本文介绍程序主界面的实现,对应的文件是Panoramio.java,主界面提供给用户从地图上选择搜索区域的功能,因此,直接从MapActivity继承,并实现OnClickListener接口。这样一来,这个类的初始框架如下代码所示:

[java]
import com.google.android.maps.MapActivity; 
 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
 
public class MainActivity extends MapActivity implements OnClickListener { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
    } 
 
     
    @Override 
    //为了统计目的,地图服务器需要知道我们的MapActivity是否显示路线信息,例如行车方向等  
    protected boolean isRouteDisplayed() {  
        return false; 
    } 
 
    public void onClick(View arg0) { 
        // TODO Auto-generated method stub  
         
    } 

import com.google.android.maps.MapActivity;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends MapActivity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

   
 @Override
 //为了统计目的,地图服务器需要知道我们的MapActivity是否显示路线信息,例如行车方向等
 protected boolean isRouteDisplayed() {
  return false;
 }

 public void onClick(View arg0) {
  // TODO Auto-generated method stub
  
 }
}重温下程序界面,如下图:
\

 

对照着上图,布局文件main.xml也就一目了然,结合采用线性布局和帧布局,如下所示:(注意,picture_frame.9.png是一张9-patch图片)

[html]
<?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" 
    > 
    <FrameLayout  
        android:layout_width="fill_parent"  
        android:layout_height="0dip" 
        android:layout_weight="1" 
        android:padding="10dip"> 
         
        <FrameLayout  
            android:id="@+id/frame" 
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent" 
            android:background="@drawable/picture_frame" 
            />  
    </FrameLayout>  
 
    <Button 
        android:id="@+id/go" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_gravity="center_horizontal" 
         
        android:text="@string/go" 
        android:minWidth="150dip" 
        android:layout_marginBottom="2dip" 
        /> 
         
</LinearLayout> 
<?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"
     >
  <FrameLayout
   android:layout_width="fill_parent"
      android:layout_height="0dip"
      android:layout_weight="1"
      android:padding="10dip">
     
   <FrameLayout
    android:id="@+id/frame"
    android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:background="@drawable/picture_frame"
       />
  </FrameLayout>
 
 <Button
      android:id="@+id/go"
    android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"
    
      android:text="@string/go"
      android:minWidth="150dip"
      android:layout_marginBottom="2dip"
      />
    
 </LinearLayout>
 
下面是Panoramio.java的代码,注释很清楚了,这里就不多说了:
 
[java]
 package com.google.android.panoramio;
 
 import com.google.android.maps.GeoPoint;
 import com.google.android.maps.MapActivity;
 import com.google.android.maps.MapView;
 import com.google.android.maps.MyLocationOverlay;
 
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.Gravity;
 import andro

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,