Android Studio 模仿美团界面

编程入门 行业动态 更新时间:2024-10-05 21:14:19

Android Studio 模仿美团<a href=https://www.elefans.com/category/jswz/34/1769995.html style=界面"/>

Android Studio 模仿美团界面

目录

activity_main.xml

shouye_layout.xml

xiaoxi_layout.xml

Wode_layout.xml

首页里面的ListView

        food_item.xml

        Food

         FoodAdapter

        Shouye

消息界面中的机器人聊天功能:

        activity_robot.xml

        msg_item.xml

        Msg.java

        MsgAdapter.java

        Robot.java

        xiaoxi.java

 “我的”界面

        Wode.java

Activity.java

运行截图

工程文件


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""android:orientation="vertical"android:background="#ffffff"android:layout_width="match_parent"android:layout_height="match_parent"><FrameLayoutandroid:id="@+id/main_frame_layout"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="0dp"></FrameLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="75dp"><Buttonandroid:id="@+id/btn1"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="首页"android:textSize="20dp"/><Buttonandroid:id="@+id/btn3"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="消息"android:textSize="20dp"/><Buttonandroid:id="@+id/btn4"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="我的"android:textSize="20dp"/></LinearLayout></LinearLayout>

shouye_layout.xml

第一个fragment

(代码中涉及到的一些图片,大家可以自己命名一些相同的图片放到对应的文件夹中,或者更改相应的代码,也可以到文章底部的工程文件中下载)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""android:orientation="vertical"android:background="#ffffff"android:layout_width="match_parent"android:layout_height="match_parent"><FrameLayoutandroid:id="@+id/main_frame_layout"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="0dp"></FrameLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="75dp"><Buttonandroid:id="@+id/btn1"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="首页"android:textSize="20dp"/><Buttonandroid:id="@+id/btn3"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="消息"android:textSize="20dp"/><Buttonandroid:id="@+id/btn4"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="我的"android:textSize="20dp"/></LinearLayout></LinearLayout>

xiaoxi_layout.xml

第二个fragment

(代码中涉及到的一些图片,大家可以自己命名一些相同的图片放到对应的文件夹中,或者更改相应的代码,也可以到文章底部的工程文件中下载)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""android:orientation="vertical"android:background="#ffffff"android:layout_width="match_parent"android:layout_height="match_parent"><FrameLayoutandroid:id="@+id/main_frame_layout"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="0dp"></FrameLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="75dp"><Buttonandroid:id="@+id/btn1"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="首页"android:textSize="20dp"/><Buttonandroid:id="@+id/btn3"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="消息"android:textSize="20dp"/><Buttonandroid:id="@+id/btn4"android:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"android:background="#ffffff"android:text="我的"android:textSize="20dp"/></LinearLayout></LinearLayout>

Wode_layout.xml

第三个fragment

(代码中涉及到的一些图片,大家可以自己命名一些相同的图片放到对应的文件夹中,或者更改相应的代码,也可以到文章底部的工程文件中下载)

<LinearLayout xmlns:android=""android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="180dp"android:background="#ffcc33"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="25dp"android:layout_marginLeft="25dp"android:src="@drawable/touxiang"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="35dp"android:layout_marginLeft="25dp"android:text="是我哦"android:textSize="25dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="35dp"android:layout_marginLeft="25dp"android:text="假装有id"android:textSize="25dp"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="130dp"android:src="@drawable/shezhi"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/kefu"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><ImageViewandroid:layout_width="200px"android:layout_height="200px"android:src="@drawable/sc"android:layout_weight="1"/><ImageViewandroid:layout_width="200px"android:layout_height="200px"android:src="@drawable/pj"android:layout_weight="1"/><ImageViewandroid:layout_width="200px"android:layout_height="200px"android:src="@drawable/zj"android:layout_weight="1"/><ImageViewandroid:layout_width="200px"android:layout_height="200px"android:src="@drawable/kq"android:layout_weight="1"/></LinearLayout></LinearLayout>
</LinearLayout>

首页里面的ListView

        food_item.xml

<LinearLayout xmlns:android=""android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/food_image"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/food_name"android:textSize="20dp"android:layout_gravity="center_vertical"android:layout_marginLeft="10dp"/></LinearLayout>

        Food

        在包内创建一个Java类并命名为Food,写入如下代码:

public class Food {private String name;private int imageId;public Food(String name, int imageId) {this.name = name;this.imageId = imageId;}public String getName() {return name;}public int getImageId() {return imageId;}
}

         FoodAdapter

        在包内创建一个Java类并命名为FoodAdapter,写入如下代码:

public class FoodAdapter extends ArrayAdapter<Food> {private int resourceId;public FoodAdapter(Context context, int textViewResourceId,List<Food> objects){super(context, textViewResourceId, objects);resourceId = textViewResourceId;}@Overridepublic View getView(int position, View convertView, ViewGroup parent){Food food = getItem(position);View view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);ImageView foodImage = (ImageView) view.findViewById(R.id.food_image);TextView foodname = (TextView) view.findViewById(R.id.food_name);foodImage.setImageResource(food.getImageId());foodname.setText(food.getName());return view;}
}

        Shouye

        在包内创建一个Java类并命名为Shouye,写入如下代码:

(代码中涉及到的一些图片,大家可以自己命名一些相同的图片放到对应的文件夹中,或者更改相应的代码,也可以到文章底部的工程文件中下载)

public class Shouye extends Fragment implements AdapterView.OnItemClickListener {ListView listView;SimpleAdapter simpleAdapter;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.shouye_layout, container, false);listView = view.findViewById(R.id.list_view);simpleAdapter = new SimpleAdapter(getActivity(),getData(),R.layout.food_item,new String[]{"title","image"},new int[]{R.id.food_name,R.id.food_image});listView.setAdapter(simpleAdapter);listView.setOnItemClickListener(this);return view;}private List<Map<String,Object>> getData(){String [] title = {"井盒炒饭","全鸡汉堡","小煎鸡饭","猪脚饭"};int [] image = {R.drawable.chaofan,R.drawable.hls,R.drawable.xcj,R.drawable.zjf};List<Map<String,Object>> list = new ArrayList<>();for (int j=0;j<5;j++){for (int i=0;i<4;i++){Map map = new HashMap();map.put("title",title[i]);map.put("image",image[i]);list.add(map);}}return list;}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);}@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {}}

消息界面中的机器人聊天功能:

        activity_robot.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""xmlns:app=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="#d8e0e8"tools:context=".MainActivity"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/msg_recycler_view"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><EditTextandroid:id="@+id/input_text"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:maxLines="2"android:hint="输入信息"/><Buttonandroid:id="@+id/send"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="发送"/></LinearLayout></LinearLayout>

         msg_item.xml

(代码中涉及到的一些图片,大家可以自己命名一些相同的图片放到对应的文件夹中,或者更改相应的代码,也可以到文章底部的工程文件中下载)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android=""android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="10dp"><LinearLayoutandroid:id="@+id/left_layout"android:layout_gravity="left"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:background="@mipmap/message_left"><TextViewandroid:id="@+id/left_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_margin="10dp"android:textColor="#fff"android:text="你好,小明"/></LinearLayout><LinearLayoutandroid:id="@+id/right_layout"android:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@mipmap/message_right"android:layout_gravity="right"><TextViewandroid:id="@+id/right_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_margin="10dp"android:text="我杀你妈"/></LinearLayout></LinearLayout>

        Msg.java

        在包内创建一个Java类文件,命名为Msg,写入如下代码:

package com.example.meituanapplication;public class Msg {public static final int TYPE_RECEIVED = 0;public static final int TYPE_SENT = 1;// 消息内容private String content;// 消息类型private int type;public Msg(String content,int type){this.content = content;this.type = type;}public int getType(){return type;}public String getContent(){return content;}public void setContent(String content){this.content = content;}public void setType(int type){this.type = type;}
}

         MsgAdapter.java

        在包内创建一个Java类文件,命名为MsgAdapter,写入如下代码:

public class MsgAdapter extends RecyclerView.Adapter<MsgAdapter.ViewHolder> {private List<Msg> mMsgList;static class ViewHolder extends RecyclerView.ViewHolder{LinearLayout leftLayout;LinearLayout rightLayout;TextView leftMsg;TextView rightMsg;public ViewHolder(View view){super(view);leftLayout = (LinearLayout) view.findViewById(R.id.left_layout);rightLayout = (LinearLayout) view.findViewById(R.id.right_layout);leftMsg = (TextView) view.findViewById(R.id.left_msg);rightMsg = (TextView) view.findViewById(R.id.right_msg);}}public MsgAdapter(List<Msg> msgList){mMsgList = msgList;}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.msg_item,parent,false);return new ViewHolder(view);}@Overridepublic void onBindViewHolder(ViewHolder holder,int position){Msg msg = mMsgList.get(position);if (msg.getType() == Msg.TYPE_RECEIVED) {holder.leftLayout.setVisibility(View.VISIBLE);holder.rightLayout.setVisibility(View.GONE);holder.leftMsg.setText(msg.getContent());}else if (msg.getType() == Msg.TYPE_SENT){holder.rightLayout.setVisibility(View.VISIBLE);holder.leftLayout.setVisibility(View.GONE);holder.rightMsg.setText(msg.getContent());}}@Overridepublic int getItemCount() {return mMsgList.size();}
}

        Robot.java

        在包内创建一个Java类文件,命名为Robot,写入如下代码:

public class Robot extends AppCompatActivity {private List<Msg> msgList = new ArrayList<>();private EditText inputText;private Button send;private RecyclerView msgRecyclerView;private MsgAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_robot);initMsgs();//初始化消息数据inputText = (EditText) findViewById(R.id.input_text);send = (Button) findViewById(R.id.send);msgRecyclerView = (RecyclerView) findViewById(R.id.msg_recycler_view);LinearLayoutManager layoutManager = new LinearLayoutManager(this);msgRecyclerView.setLayoutManager(layoutManager);adapter = new MsgAdapter(msgList);msgRecyclerView.setAdapter(adapter);send.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String content = inputText.getText().toString();if (!"".equals(content)) {Msg msg = new Msg(content,Msg.TYPE_SENT);msgList.add(msg);adapter.notifyItemInserted(msgList.size() - 1);msgRecyclerView.scrollToPosition(msgList.size() - 1);inputText.setText("");}}});}private void initMsgs() {Msg msg1 = new Msg("long may the sun shine!",Msg.TYPE_RECEIVED);msgList.add(msg1);Msg msg2 = new Msg("you are dragon, more dragon thsn me.",Msg.TYPE_SENT);msgList.add(msg2);Msg msg3 = new Msg("如果你是龙,也好",Msg.TYPE_RECEIVED);msgList.add(msg3);}
}

         xiaoxi.java

         在包内创建一个Java类文件,命名为Robot,写入如下代码:

public class Xiaoxi extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.xiaoxi_layout, container, false);LinearLayout nx = view.findViewById(R.id.xiaoxi_nie);nx.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(getActivity(),Robot.class);startActivity(intent);}});return view;}
}

 “我的”界面

        Wode.java

        在包内创建一个Java类文件,命名为Wode,写入如下代码:

public class Wode extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.wode_layout, container, false);return view;}
}

Activity.java

最后是主要的活动的代码:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{//三个fragmentprivate Shouye f1;private Xiaoxi f2;private Wode f3;//底部三个按钮private Button foot1;private Button foot2;private Button foot3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);foot1 = (Button) findViewById(R.id.btn1);foot2 = (Button) findViewById(R.id.btn3);foot3 = (Button) findViewById(R.id.btn4);foot1.setOnClickListener(this);foot2.setOnClickListener(this);foot3.setOnClickListener(this);//第一次初始化首页默认显示第一个fragmentinitShouye();}//显示第一个fragmentprivate void initShouye(){FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();if (f1 == null){f1 = new Shouye();transaction.add(R.id.main_frame_layout,f1);}hideFragment(transaction);transaction.show(f1);transactionmit();}//显示第二个fragmentprivate void initXiaoxi(){FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();if(f2 == null){f2 = new Xiaoxi();transaction.add(R.id.main_frame_layout,f2);}hideFragment(transaction);transaction.show(f2);transactionmit();}//显示第三个fragmentprivate void initWode(){FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();if(f3 == null){f3 = new Wode();transaction.add(R.id.main_frame_layout,f3);}hideFragment(transaction);transaction.show(f3);transactionmit();}//隐藏所有的fragmentprivate void hideFragment(FragmentTransaction transaction){if(f1 != null){transaction.hide(f1);}if(f2 != null){transaction.hide(f2);}if(f3 != null){transaction.hide(f3);}}@Overridepublic void onClick(View v) {if(v == foot1){initShouye();}else if(v == foot2){initXiaoxi();}else if(v == foot3){initWode();}}}

运行截图

    

    

工程文件

下面是整个项目工程的文件压缩包,如果需要的话可以通过积分下载:

AndroidStudio模仿美团界面-Android文档类资源-CSDN下载用AndroidStudio模仿美团界面做一个app更多下载资源、学习资料请访问CSDN下载频道.

更多推荐

Android Studio 模仿美团界面

本文发布于:2024-02-28 00:19:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767098.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:界面   Android   Studio

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!