Android 프로그래밍의 일기예보 샘플 소스 프레젠테이션 및 효과 전시 --1

7788 단어
우리가 외출하는 경우가 많지만 외출하는 날씨를 파악하지 못해 늘 고민거리가 생겨 물에 빠진 생쥐가 되어 오늘은 여러분을 데리고 쓰겠습니다
일기예보에 관한 안드로이드 앱은 제가 아주 상세하게 몇 가지 부분으로 나누어 상세하게 설명합니다. 여러분이 좋아하는 것이 하나 있으면 좋겠습니다.
또한 더 많은 사람들이 제 블로그에 가입하여 함께 공부하고 교류하며 함께 진보하기를 바랍니다. 감사합니다!
일기예보를 작성한 후 시간이 나면 파일 관리자와 기타 실용적인 앱 개발에 대해 이야기하여 학습과 교류를 편리하게 합니다.
일기예보를 개발하기 전에 먼저 날씨 정보를 얻을 수 있는 API 키를 준비해야 한다. 여기서 필자는 여러분에게 인터넷 주소를 추천하는데 비교적 실용적이다.
key 신청 주소:http://www.wunderground.com
키를 얻은 후에 우리는 우리의 개발을 시작할 수 있다. 우리의 인터페이스를 더욱 간소화하고 아름답게 보이기 위해android를 사용했다.support.v4.jar 제3자 라이브러리picasso-2.2.0.jar, 없는 어린이 신발 도착 가능http://download.csdn.net/detail/jspping/8084689자체 다운로드
다운로드가 끝난 후에 이들을 프로젝트libs 폴더로 가져옵니다. 없는 것은 자체로libs를 새로 만들 수 있습니다. 새로운 안드로이드 프로젝트를 만든 다음에 프로그래밍을 시작합니다. 우선 목록 파일 XML에 응용 프로그램에 대응하는 권한을 추가해야 합니다. 여기에 필요한 것은 네트워크 접근, 네트워크 상태, GPS 권한 등입니다.구성 목록은 다음과 같습니다.
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!-- GPS 、   --> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

권한이 설정되면 프로그래밍을 시작합니다. 필자는 이 곳에서 응용 프로그램에 환영하는Animation을 추가했습니다. 사용자에게 더욱 우호적인 체험을 하기 위해 코드를 보겠습니다.
package com.newer.myweather;
/**
 * Animation     
 * @author Engineer-Jsp
 * @date 2014.10.27
 * */
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ComponentName;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.view.animation.AlphaAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;

public class SplashActivity extends Activity {

	private TextView versionNumber;
	private LinearLayout mLinearLayout;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.splash);

		mLinearLayout = (LinearLayout) findViewById(R.id.LinearLayout01);
		versionNumber = (TextView) findViewById(R.id.versionNumber);
		versionNumber.setText(getVersion());

		if (isNetWorkConnected()) {
			AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f);
			aa.setDuration(2000);
			mLinearLayout.setAnimation(aa);
			mLinearLayout.startAnimation(aa);
			//     ,       ,       3000ms, 3  
			new Handler().postDelayed(new Runnable() {

				@Override
				public void run() {
					//       
					Intent service = new Intent(SplashActivity.this,
							WeatherService.class);
					startService(service);
					finish();
					//             
					Intent intent = new Intent(SplashActivity.this,
							MainActivity.class);
					startActivity(intent);
				}
			}, 3000);
		} else {
			showSetNetworkDialog();
		}

	}
    //         
	private void showSetNetworkDialog() {
		AlertDialog.Builder builder = new Builder(this);
		builder.setTitle("    ");
		builder.setMessage("           ");
		builder.setPositiveButton("    ", new OnClickListener() {

			public void onClick(DialogInterface dialog, int which) {
				Intent intent = null;
				//            API  10   3.0     
				if (android.os.Build.VERSION.SDK_INT > 10) {
					intent = new Intent(
							android.provider.Settings.ACTION_WIRELESS_SETTINGS);
				} else {
					intent = new Intent();
					ComponentName component = new ComponentName(
							"com.android.settings",
							"com.android.settings.WirelessSettings");
					intent.setComponent(component);
					intent.setAction("android.intent.action.VIEW");
				}
				startActivity(intent);
				finish();
			}
		});
		builder.setNegativeButton("  ", new OnClickListener() {

			public void onClick(DialogInterface dialog, int which) {
				finish();
			}
		});
		builder.create().show();
	}
    //       
	private boolean isNetWorkConnected() {
		ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = manager.getActiveNetworkInfo();
		return (networkInfo != null && networkInfo.isConnected());
	}
    //     
	private String getVersion() {
		try {
			PackageInfo info = getPackageManager().getPackageInfo(
					getPackageName(), 0);
			return "Version " + info.versionName;
		} catch (NameNotFoundException e) {
			e.printStackTrace();
			return "Version";
		}
	}

}

로드된 splash.xml 코드:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/home_gradiend"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginTop="60dip"
        android:paddingLeft="20dip"
        android:paddingRight="20dip"
        android:scaleType="centerInside"
        android:src="@drawable/logo" >
    </ImageView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:gravity="bottom"
        android:shadowColor="#FFFFFF"
        android:shadowDx="0"
        android:shadowDy="2"
        android:shadowRadius="1"
        android:text="@string/app_name"
        android:textColor="#444444"
        android:textSize="35dip"
        android:typeface="serif" >
    </TextView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:gravity="bottom"
        android:shadowColor="#FFFFFF"
        android:shadowDx="0"
        android:shadowDy="2"
        android:shadowRadius="1"
        android:text="(       )"
        android:textColor="#444444"
        android:textSize="25dip"
        android:typeface="serif" >
    </TextView>

    <TextView
        android:id="@+id/versionNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:gravity="bottom"
        android:shadowColor="#FFFFFF"
        android:shadowDx="0"
        android:shadowDy="2"
        android:shadowRadius="1"
        android:text="   "
        android:textColor="#444444"
        android:textSize="20dip"
        android:typeface="serif" >
    </TextView>

</LinearLayout>

환영 인터페이스 효과도 전시:
활동과 서비스에 들어가기 전에 사용자의 현재 네트워크 상태를 판단하고 사용자가 현재 네트워크 상태가 좋지 않거나 네트워크가 없으면 네트워크 설정 인터페이스를 팝업하여 사용자가 선택할 수 있도록 한다. 만약에 네트워크가 문제가 없으면 이 애니메이션을 재생한 후에 의도적으로 서비스를 시작하여 메인 활동으로 이동한다.
다음 편에서는 서비스와 주요 활동의 사용을 설명할 것이다. 이 내용은 이것뿐이다. 지식이 많지 않으니 잘 소화해 보자. 우리 다음 편에서 이어서 이야기하자.

좋은 웹페이지 즐겨찾기