Weather.java
- package com.example;
- import java.io.UnsupportedEncodingException;
- import org.ksoap2.SoapEnvelope;
- import org.ksoap2.serialization.SoapObject;
- import org.ksoap2.serialization.SoapSerializationEnvelope;
- import org.ksoap2.transport.HttpTransportSE;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class Weather extends Activity {
- private Button search_but;
- private TextView textview1;
- private EditText et;
- private Button city1_1;
- private Button city1_2;
- private Button city1_3;
- private Button city1_4;
- private ImageView image1;
- private ImageView image2;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- et=(EditText)findViewById(R.id.et);
- image1=(ImageView)findViewById(R.id.image1);
- image2=(ImageView)findViewById(R.id.image2);
- search_but=(Button)findViewById(R.id.search_but);
- city1_1=(Button)findViewById(R.id.city1_1);
- city1_1.setOnClickListener(listener1);
- city1_2=(Button)findViewById(R.id.city1_2);
- city1_2.setOnClickListener(listener2);
- city1_3=(Button)findViewById(R.id.city1_3);
- city1_3.setOnClickListener(listener3);
- city1_4=(Button)findViewById(R.id.city1_4);
- city1_4.setOnClickListener(listener4);
- search_but.setOnClickListener(listener);
- }
- private OnClickListener listener=new OnClickListener() {
- @Override
- public void onClick(View v) {
- String city=et.getText().toString();
- getWeather(city);
- }
- };
- private OnClickListener listener1=new OnClickListener() {
- @Override
- public void onClick(View v) {
- et.setText("北京");
- }
- };
- private OnClickListener listener2=new OnClickListener() {
- @Override
- public void onClick(View v) {
- et.setText("上海");
- }
- };
- private OnClickListener listener3=new OnClickListener() {
- @Override
- public void onClick(View v) {
- et.setText("深圳");
- }
- };
- private OnClickListener listener4=new OnClickListener() {
- @Override
- public void onClick(View v) {
- et.setText("北京");
- }
- };
- private static final String NAMESPACE = "http://WebXml.com.cn/";
- // WebService地址
- private static String URL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";
- private static final String METHOD_NAME = "getWeatherbyCityName";
- private static String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";
- private String weatherToday;
- private SoapObject detail;
- private String weatherNow;
- private String weatherWillBe;
- private void setIcon(String weather, ImageView imageview) {
- if(weather.equalsIgnoreCase("nothing.gif"))
- imageview.setBackgroundResource(R.drawable.a_nothing);
- if(weather.equalsIgnoreCase("0.gif"))
- imageview.setBackgroundResource(R.drawable.a_0);
- if(weather.equalsIgnoreCase("1.gif"))
- imageview.setBackgroundResource(R.drawable.a_1);
- if(weather.equalsIgnoreCase("2.gif"))
- imageview.setBackgroundResource(R.drawable.a_2);
- if(weather.equalsIgnoreCase("3.gif"))
- imageview.setBackgroundResource(R.drawable.a_3);
- if(weather.equalsIgnoreCase("4.gif"))
- imageview.setBackgroundResource(R.drawable.a_4);
- if(weather.equalsIgnoreCase("5.gif"))
- imageview.setBackgroundResource(R.drawable.a_5);
- if(weather.equalsIgnoreCase("6.gif"))
- imageview.setBackgroundResource(R.drawable.a_6);
- if(weather.equalsIgnoreCase("7.gif"))
- imageview.setBackgroundResource(R.drawable.a_7);
- if(weather.equalsIgnoreCase("8.gif"))
- imageview.setBackgroundResource(R.drawable.a_8);
- if(weather.equalsIgnoreCase("9.gif"))
- imageview.setBackgroundResource(R.drawable.a_9);
- if(weather.equalsIgnoreCase("10.gif"))
- imageview.setBackgroundResource(R.drawable.a_10);
- if(weather.equalsIgnoreCase("11.gif"))
- imageview.setBackgroundResource(R.drawable.a_11);
- if(weather.equalsIgnoreCase("12.gif"))
- imageview.setBackgroundResource(R.drawable.a_12);
- if(weather.equalsIgnoreCase("13.gif"))
- imageview.setBackgroundResource(R.drawable.a_13);
- if(weather.equalsIgnoreCase("14.gif"))
- imageview.setBackgroundResource(R.drawable.a_14);
- if(weather.equalsIgnoreCase("15.gif"))
- imageview.setBackgroundResource(R.drawable.a_15);
- if(weather.equalsIgnoreCase("16.gif"))
- imageview.setBackgroundResource(R.drawable.a_16);
- if(weather.equalsIgnoreCase("17.gif"))
- imageview.setBackgroundResource(R.drawable.a_17);
- if(weather.equalsIgnoreCase("18.gif"))
- imageview.setBackgroundResource(R.drawable.a_18);
- if(weather.equalsIgnoreCase("19.gif"))
- imageview.setBackgroundResource(R.drawable.a_19);
- if(weather.equalsIgnoreCase("20.gif"))
- imageview.setBackgroundResource(R.drawable.a_20);
- if(weather.equalsIgnoreCase("21.gif"))
- imageview.setBackgroundResource(R.drawable.a_21);
- if(weather.equalsIgnoreCase("22.gif"))
- imageview.setBackgroundResource(R.drawable.a_22);
- if(weather.equalsIgnoreCase("23.gif"))
- imageview.setBackgroundResource(R.drawable.a_23);
- if(weather.equalsIgnoreCase("24.gif"))
- imageview.setBackgroundResource(R.drawable.a_24);
- if(weather.equalsIgnoreCase("25.gif"))
- imageview.setBackgroundResource(R.drawable.a_25);
- if(weather.equalsIgnoreCase("26.gif"))
- imageview.setBackgroundResource(R.drawable.a_26);
- if(weather.equalsIgnoreCase("27.gif"))
- imageview.setBackgroundResource(R.drawable.a_27);
- if(weather.equalsIgnoreCase("28.gif"))
- imageview.setBackgroundResource(R.drawable.a_28);
- if(weather.equalsIgnoreCase("29.gif"))
- imageview.setBackgroundResource(R.drawable.a_29);
- if(weather.equalsIgnoreCase("30.gif"))
- imageview.setBackgroundResource(R.drawable.a_30);
- if(weather.equalsIgnoreCase("31.gif"))
- imageview.setBackgroundResource(R.drawable.a_31);
- }
- public void getWeather(String cityName) {
- try {
- textview1 = (TextView) this.findViewById(R.id.TextView01);
- SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
- rpc.addProperty("theCityName", cityName);
- SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
- SoapEnvelope.VER11);
- envelope.bodyOut = rpc;
- envelope.dotNet = true;
- envelope.setOutputSoapObject(rpc);
- HttpTransportSE ht = new HttpTransportSE(URL);
- ht.debug = true;
- ht.call(SOAP_ACTION, envelope);
- detail = (SoapObject) envelope.getResponse();
- parseWeather(detail);
- return;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private void parseWeather(SoapObject detail)
- throws UnsupportedEncodingException {
- textview1 = (TextView) this.findViewById(R.id.TextView01);
- String date = detail.getProperty(6).toString();
- weatherToday = "\n天气:" + date.split(" ")[1];
- weatherToday = weatherToday + "\n气温:"
- + detail.getProperty(5).toString();
- weatherToday = weatherToday + "\n风力:"
- + detail.getProperty(7).toString() + "\n";
- weatherNow = detail.getProperty(8).toString();
- weatherWillBe = detail.getProperty(9).toString();
- textview1.setText(et.getText() + weatherToday);
- setIcon(weatherNow, image1);
- setIcon(weatherWillBe, image2);
- }
- }
main.xml
- <?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"
- android:background="@drawable/bg">
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <EditText android:id="@+id/et"
- android:layout_width="237dp"
- android:layout_height="50dp"
- android:background="@drawable/shape"
- android:drawableLeft="@drawable/title"
- android:hint="北京/beijing/bj"
- android:padding="10px"
- android:singleLine="true"
- android:textColor="#FFFAFA" />
- <Button android:id="@+id/search_but"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="#00ff00ff"
- android:text="Search"
- android:textColor="#696969"
- android:textStyle="italic" />
- </LinearLayout>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <TableRow>
- <Button
- android:id="@+id/city1_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="#00000000"
- android:text="北京"
- android:layout_weight="0.25"
- android:textSize="20px"
- android:textColor="#FFFAFA" />
- <Button
- android:id="@+id/city1_2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="#00ff00ff"
- android:text="上海"
- android:textSize="20px"
- android:layout_weight="0.25"
- android:textColor="#FFFAFA" />
- <Button
- android:id="@+id/city1_3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="#00ff00ff"
- android:text="广州"
- android:textSize="20px"
- android:layout_weight="0.25"
- android:textColor="#FFFAFA" />
- <Button
- android:id="@+id/city1_4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="#00ff00ff"
- android:text="深圳"
- android:textSize="20px"
- android:layout_weight="0.25"
- android:textColor="#FFFAFA" />
- </TableRow>
- </TableLayout>
- <TextView android:text=""
- android:id="@+id/TextView01"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="#000000"
- android:textSize="20px"/>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <ImageView android:id="@+id/image1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- <ImageView android:id="@+id/image2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- </LinearLayout>
- </LinearLayout>
设置EditText边框颜色、透明
drawable/shape.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#00ff00ff"/>
- <corners android:radius="8px"/>
- <stroke android:width="3px"
- android:color="#0000CD"/>
- </shape>
AndroidManifest.xml中添加:
- <uses-permission android:name="android.permission.INTERNET">
- </uses-permission>