Android实现简单的天气app功能
这里只实现了对各个城市的天气和温度显示功能
以下附上代码:
MainActivity
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText=findViewById(R.id.editTextTextPersonName);
TextView textView01=findViewById(R.id.textView5);
TextView textView02=findViewById(R.id.textView6);
TextView textView03=findViewById(R.id.textview7);
TextView textView04=findViewById(R.id.textview8);
TextView textView05=findViewById(R.id.textview9);
String code="APPCODE "+"f914f2d8effd4cffa1baf3b557499248";
Api api=RetrofitUtils.getRetrofit("http://ali-weather.showapi.com/").create(Api.class);
findViewById(R.id.imageView).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String city=editText.getText().toString();
Call<WeatherResult> weatherResultCall=api.getWeatherResult(code,city);
weatherResultCall.enqueue(new Callback<WeatherResult>() {
@Override
public void onResponse(Call<WeatherResult> call, Response<WeatherResult> response) {
WeatherResult weatherResult=response.body();
textView01.setText(weatherResult.showapi_res_body.now.temperature);
textView02.setText(weatherResult.showapi_res_body.now.weather);
textView03.setText(weatherResult.showapi_res_body.now.weather);
textView04.setText(weatherResult.showapi_res_body.f1.day_weather);
textView05.setText(weatherResult.showapi_res_body.f2.day_weather);
}
@Override
public void onFailure(Call<WeatherResult> call, Throwable t) {
}
});
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="52dp"
android:layout_height="45dp"
android:layout_marginStart="12dp"
android:layout_marginTop="32dp"
android:background="#FFFFFF"
app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/img" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="414dp"
android:layout_height="505dp"
android:layout_marginEnd="4dp"
android:layout_marginBottom="1dp"
app:layout_constraintBottom_toTopOf="@+id/linearLayout"
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:id="@+id/imageView3"
android:layout_width="398dp"
android:layout_height="381dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.497"
app:srcCompat="@drawable/img_2" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="410dp"
android:layout_height="118dp"
android:layout_marginBottom="116dp"
android:layout_weight="1"
android:gravity="bottom"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test05" />
<TextView
android:id="@+id/textview7"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center"
android:text="天气"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test06" />
<TextView
android:id="@+id/textview8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="会员"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test07" />
<TextView
android:id="@+id/textview9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="我的"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/textView5"
android:layout_width="114dp"
android:layout_height="133dp"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:text="22"
android:textSize="96sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/imageView3" />
<TextView
android:id="@+id/textView6"
android:layout_width="106dp"
android:layout_height="0dp"
android:text="阴"
android:textSize="34sp"
app:layout_constraintBottom_toBottomOf="@+id/textView5"
app:layout_constraintStart_toEndOf="@+id/textView5" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="400dp"
android:layout_height="100dp"
android:gravity="bottom"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test01" />
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center"
android:text="天气"
android:textColor="#00FF00"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test02" />
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center"
android:text="实景"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test03" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="会员"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="100dp"
android:layout_height="40dp"
android:gravity="center"
android:src="@drawable/test04" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="我的"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
<EditText
android:id="@+id/editTextTextPersonName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="52dp"
android:layout_marginTop="32dp"
android:ems="10"
android:inputType="textPersonName"
android:minHeight="48dp"
android:text="请输入城市"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
这里面需要导一些包,放在build.gradle中:
implementation 'com.google.code.gson:gson:2.9.0'
implementation("com.squareup.okhttp3:okhttp:4.9.3")
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'