使用android studio创建一个简单的界面

使用TextView、ImageView、ListView等控件创建一个二十四节气列表界面。

代码如下: 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/khaki"
tools:context=".MainActivity">

<TextView
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@color/light_fawn"
android:gravity="center"
android:text="二十四节气"
android:textColor="@color/deep_cyan"
android:textSize="25sp"
tools:ignore="HardcodedText,TextContrastCheck,TextSizeCheck" />

<ListView
android:id="@+id/lv"
android:layout_marginTop="45dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</RelativeLayout>

创建一个新xml文件,在layout文件夹下

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<ImageView
android:id="@+id/iv"
android:layout_width="112dp"
android:layout_height="119dp"
android:layout_centerVertical="true"
tools:ignore="ContentDescription" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_toEndOf="@+id/iv"
android:layout_centerVertical="true">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="立春"
android:textSize="20sp"
android:textColor="@color/dark_wood"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_describe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="简介:"
android:textSize="20sp"
android:layout_marginTop="10dp"
android:layout_below="@+id/title"
android:textColor="@color/dark_wood"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/describe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你的描述"
android:textSize="20sp"
android:layout_toRightOf="@+id/tv_describe"
android:layout_below="@+id/title"
android:textColor="@color/dark_wood"
android:layout_marginTop="10dp"
tools:ignore="HardcodedText,RtlHardcoded,UnknownId" />

</RelativeLayout>

</RelativeLayout>

主文件Java代码

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.BaseAdapter;

public class MainActivity extends AppCompatActivity {
private final String[] titles = {"立春 2月3-4日","雨水 2月18-19日","惊蛰 3月5-6日","春分 3月20-21日","清明 4月4-6日","谷雨 4月19-20日","立夏 5月5-6日","小满 5月20-22日","芒种 6月5-6日","夏至 6月21-22日","小暑 7月7-8日","大暑 7月22-23日","立秋 8月6-9日","处暑 8月22-24日","白露 9月7-8日","秋分 9月22-24日","寒露 10月7-9日","霜降 10月23-24日","立冬 11月7-8日","小雪 11月22-23日","大雪 12月7-8日","冬至 12月21-23日","小寒 1月5-6日","大寒 1月19-21日"};
private final String[] describe = {"立春,为二十四节气之首。立春标志着万物闭藏的冬季已过去,开始进入风和日暖、万物生长的春季","雨水,是春季第2个节气。雨水节气的含义是降雨开始,降雨量极多以小雨或毛毛细雨为主,适宜的降水对农作物的生长很重要,它是农耕文化对于节令的反映。","惊蛰,是春季第3个节气,它反映的是自然生物受节律变化影响而出现萌发生长的现象。惊蛰的意思是天气回暖,春雷始鸣,惊醒蛰伏于地下冬眠的昆虫。","春分又称为“日中”、“日夜分”、“仲春之月”、“升分”等。春分的意义,一是指一天时间白天黑夜平分,各为12小时;二是春分正当春季(立春至立夏)三个月之中,平分了春季。",
"清明,是气清景明的意思。它是反映自然界物候变化的节气,这个时节阳光明媚、草木萌动、气清景明、万物皆显,自然界呈现生机勃勃的景象。","谷雨,是春季的最后一个节气。谷雨是“雨生百谷”的意思,此时降水明显增加,田中的秧苗初插、作物新种,最需要雨水的滋润,正所谓“春雨贵如油”。","立夏,是夏季的第一个节气,表示盛夏时节的正式开始。斗指东南,维为立夏,万物至此皆长大,故名立夏也。立夏,表示告别春天,是夏天的开始。","小满,是夏季的第二个节气。小满节气意味着进入了大幅降水的雨季,雨水开始增多,往往会出现持续大范围的强降水。小满和雨水、谷雨、小雪、大雪等一样,都是直接反映降水的节气。",
"芒种,是夏季的第三个节气。芒种,“芒”指一些有芒的作物,如稻、黍、稷等;“种”,一为种子的“种”,一为播种的“种”。芒种的含义是:“有芒之谷类作物可种,过此即失效”。","夏至,是夏季的第四个节气,这天太阳直射地面的位置到达一年的最北端,几乎直射北回归线,此时,北半球各地的白昼时间达到全年最长。","小暑,是夏季的第五个节气,表示盛夏正式开始。暑,表示炎热的意思,小暑为小热,还不十分热。意指天气开始炎热,但还没到最热。小暑开始进入伏天,天气变化无常。","“暑”是炎热的意思,大暑,指炎热之极。大暑是一年中最热的节气,这时正值中伏前后,\"湿热交蒸\"在此时到达顶点。这个时节阳光猛烈、高温潮湿多雨,虽不免有湿热难熬之苦,却十分有利于农作物成长,农作物在此期间成长最快。",
"立秋,表示自此进入了秋季。它是是阳气渐收、阴气渐长,由阳盛逐渐转变为阴盛的节点。立秋也意味着降水、湿度等,处于一年中的转折点,趋于下降或减少;在自然界,万物开始从繁茂成长趋向萧索成熟","处暑,即为“出暑”,是炎热离开的意思。时至处暑,太阳直射点继续南移、太阳辐射减弱,副热带高压也向南撤退,气温逐渐下降,暑气渐消。","白露是反映自然界寒气增长的重要节气,也是昼夜温差最大的节气。由于天气逐渐转凉,白昼有阳光尚热,但太阳一落山气温便很快下降,昼夜温差拉大。","秋分,“分”即为“平分”、“半”的意思,秋分这天太阳光几乎直射地球赤道,全球各地昼夜等长。","寒露是一个反映气候变化特征的节气。进入寒露,时有冷空气南下,昼夜温差较大,并且秋燥明显。古人将寒露作为寒气渐生的表征。",
"霜降节气反映的是气温骤降、昼夜温差变化大、秋燥明显的气候特征。霜降节气特点是早晚天气较冷、中午则比较热,昼夜温差大。","立冬是季节类节气,表示自此进入了冬季。立,建始也;冬,终也,万物收藏也。立冬,意味着生气开始闭蓄,万物进入休养、收藏状态。","小雪是冬季第二个节气,气候要素包括光照、气温和降水等,小雪是反映降水与气温的节气,它是寒潮和强冷空气活动频数较高的节气。","大雪节气是干支历子月的起始,标志着仲冬时节正式开始。大雪节气是一个气候概念,气候要素主要有光照、气温和降水等,它代表的是大雪节气期间的气候特征,即气温与降水量。","冬至是反映太阳光直射运动的节气,它是\"日行南至、往北复返\"的转折点,对于北半球各地来说,太阳高度自此回升,太阳光逐渐增强。从节气规律来说,立春是“阴阳”之气中阳气升发的始点,自立春起阴阳转化,阳气上升,立春标示着万物更生、新轮回开启。",
"小寒,是天气寒冷但还没有到极点的意思。冬至之后,冷空气频繁南下,气温持续降低,温度在一年的小寒、大寒之际降到最低。","大寒是天气寒冷到极致的意思。大寒以后,立春接着到来,天气渐暖。至此地球绕太阳公转了一周,完成了一个循环。"};
private final int[] icons = {R.drawable.lichun, R.drawable.yushui,R.drawable.jizhe,R.drawable.qingming,R.drawable.guyu,R.drawable.chunfen,R.drawable.lixia,R.drawable.xiaoman,R.drawable.mangzhong,R.drawable.xiazhi,R.drawable.xiaoshu,
R.drawable.dashu,R.drawable.liqiu,R.drawable.chushu,R.drawable.bailu,R.drawable.qiufen,R.drawable.hanlu,R.drawable.shuangjiang,R.drawable.lidong,R.drawable.xiaohan,R.drawable.dahan,R.drawable.dongzhi,R.drawable.xiaohan,R.drawable.dahan};
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView mListView = findViewById(R.id.lv);
MyBaseAdapter mAdapter = new MyBaseAdapter();
mListView.setAdapter(mAdapter);
}
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
return titles.length;
}
@Override
public Object getItem(int position){
return titles[position];
}
@Override
public long getItemId(int position){
return position;
}
class ViewHolder{
TextView title,describe;
ImageView iv;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder;
if(convertView ==null){
convertView = View.inflate(MainActivity.this, R.layout.list_item, null);
holder = new ViewHolder();
holder.title = convertView.findViewById(R.id.title);
holder.describe = convertView.findViewById(R.id.describe);
holder.iv = convertView.findViewById(R.id.iv);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(titles[position]);
holder.describe.setText(describe[position]);
holder.iv.setBackgroundResource(icons[position]);
return convertView;
}
}
}

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值