day08 8.3 安卓开发项目实战

开发自己的第一款APP-切换图片

【1】编写步骤

1 打开androidStudio,新建一个项目

2 adnrodistudion中有两种视图

  • android:以后开发,经常看它
  • project:有时候找一些文件,看它, 标准文件夹结构

3 编写代码

  • activity_main.xml:
    • 编写xml,安卓页面的布局
    • 相当于前端的html
  • MainActivity:
    • 编写java,向后端发送请求,点击事件,滑动...
    • 相当于前端js代码

4 点击运行app,可以运行在真机上

【2】设置页面排版

  • app/res/layout/activity_main.xml文件中书写代码,排版页面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#dddddd" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:id="@+id/image" android:layout_height="300dp" android:src="@color/black"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/button01" android:text="点击更换美女"></Button> </LinearLayout> </LinearLayout>

  • 可以点击右上角的 Code/Split/Design 切换显示不同的模式
    • Code
      • 纯代码编辑页面
    • Split
      • 代码和页面两侧分开
    • Design
      • 纯页面编辑

【3】准备图片

  • 如果是本地的静态图片,可以选择放在 app/res/drawable 文件夹下
    • 建议再自建一个 img文件夹存放图片
  • 一般这个drawable文件夹就是存放本地静态文件的文件夹

【4】书写页面逻辑

  • app\src\main\java\com\dream\changeimg\MainActivity.java 文件中的 MainActivity.java 文件内书写主要的逻辑代码
package com.dream.changeimg; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import com.dream.changeimg.R; public class MainActivity extends AppCompatActivity { private Button button01; private ImageView image ; private int id= R.drawable.a; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button01=findViewById(R.id.button01); image=findViewById(R.id.image); button01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"切换美女",Toast.LENGTH_LONG).show(); if(id==R.drawable.a) id=R.drawable.b; else if(id==R.drawable.b) id=R.drawable.c; else if(id==R.drawable.c) id=R.drawable.d; else if(id==R.drawable.d) id=R.drawable.e; else if(id==R.drawable.e) id=R.drawable.f; else { id=R.drawable.a; } image.setImageResource(id); } }); } }
  • 注意这里需要在 drawable 文件夹下放名为 abcdef 的六张图片

【5】运行项目

  • 点击更换美女可以依次切换图片

【6】迭代版本(可显示网络图片)

  • app\src\main\java\com\dream\changeimg\MainActivity.java 文件中的 MainActivity 文件内书写主要的逻辑代码
package com.dream.changeimg; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import com.dream.changeimg.R; import java.net.URL; public class MainActivity extends AppCompatActivity { private Button button01; private ImageView image; URL url = null; Bitmap bitmap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button01 = findViewById(R.id.button01); image = findViewById(R.id.image); button01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "切换成功", Toast.LENGTH_LONG).show(); try { url = new URL("https://lmg.jj20.com/up/allimg/tx28/03102423387976.png"); requestImage(url); } catch (Exception e) { Log.e("错误显示", e.toString()); } } }); } private void requestImage(URL url) { new Thread() { @Override public void run() { try { bitmap = BitmapFactory.decodeStream(url.openStream()); showImg(); } catch (Exception e) { e.printStackTrace(); } } }.start(); } private void showImg() { runOnUiThread(new Runnable() { @Override public void run() { image.setImageBitmap(bitmap); } }); } }


__EOF__

本文作者Chimengmeng
本文链接https://www.cnblogs.com/dream-ze/p/17557904.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Chimengmeng  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示