首页 > 其他分享 >day08 8.3 安卓开发项目实战

day08 8.3 安卓开发项目实战

时间:2023-07-16 15:34:17浏览次数:37  
标签:8.3 day08 button01 安卓 MainActivity import drawable id android

开发自己的第一款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);
            }
        });

    }

}

标签:8.3,day08,button01,安卓,MainActivity,import,drawable,id,android
From: https://www.cnblogs.com/dream-ze/p/17557904.html

相关文章

  • day09 9.1 安卓开发项目实战二
    开发自己的第二款APP基于网络登陆注册能与后端进行交互的app【一】引入前面我们已经自己开发出了一款简答的App。但是那个App知识利用的本地的数据,没有和后端进行交互所以只能算是前端接下来我们要开发一款能与后端进行交互通信的App【二】必备知识想跟后端交互......
  • 基于安卓电影院订票系统
    随着社会经济的发展,计算机、智能手机的不断普及,人们的生活已和高科技息息相关。智能手机逐步融入、影响、改变着我们的生活。现代人手机购物越来越多,例如网上手机电影票的预定,人们生活水平的提高,精神消费越来越多,越来越多的人乐于去影院观看电影。因此,为了能使人们更方便快捷的购买......
  • 全新版FRIDA与安卓 应用安全与逆向实战宝典
    第1章打造安卓逆向专用PC和手机环境10节|72分钟工欲善其事,必先利其器。在本章中将会介绍笔者在`Android`逆向工作中所用到的一些环境配置,包括主机和测试机的一些基础环境。一个良好的工作系统体系能给工作人员在工作过程中带来很多便利,让大家不必因为环境问题焦头烂额。...第2......
  • Day08(2023.07.13)
    行程8:45    到达上海市信息安全测评认证中心(黄浦区陆家浜路1308号)9:00  学习《网络安全等级测评师培训教材》11:30--13:00   吃饭休息13:00 到达久事公交大厦(徐汇区吴中东路南555号)16:30      下班  系统管理软......
  • Day08(2023.07.12)
    行程8:45    到达上海市信息安全测评认证中心(黄浦区陆家浜路1308号)9:00  学习《网络安全等级测评师培训教材》11:30--13:00   吃饭休息13:00 学习《网络安全等级测评师培训教材》17:00      下班 路由器:堡垒机:如......
  • 关于安卓逆向的学习思考
    最近学了大约10天的安卓逆向,感觉有个稍微大概得了解,但是还不到解决我实际困难的程度其实有点迷茫,无所适从我感觉,还是把其中每个模块都好好学透,才能解决我的问题学了啥,还是要做记录,才能见到进展......
  • PD虚拟机18.3.2更新,最新parallels desktop下载
    ParallelsDesktop18虚拟机可以在Mac电脑上运行window或其他系统,无需重启电脑,轻松便捷。PD虚拟机18.3.2更新了,最新ParallelsDesktop18修复了一些问题,想要体验最新Mac PD虚拟机18.3.2中文版虚拟机的朋友,小编为大家带来了最新parallelsdesktop下载安装包及详细的安装教程,有需要的......
  • 安卓boot.img镜像文件提取
    环境要求:Python3解压刷机包解压刷机包的目录结构如下:/home/ubuntu/94e982775c704e889534f291f5522de1├──META-INF│  └──com│  └──android│  ├──metadata│  ├──metadata.pb│  └──otacert├─......
  • 关于安卓客户端 软键盘弹出后,导致底部按钮看不见的处理方法
    问题产生原因:安卓:软键盘弹出后会改变页面的高度将页面顶上来。使用fixed或者absolute,会使得元素跟随body的底部移动,而安卓端软键盘将导致body高度变小而导致变形。IOS端:苹果的软键盘是覆盖的(分层),因此没有什么问题。 解决思路:记录页面高度,在键盘收起后,恢复原来高度 ......
  • 安卓开发-基础篇(更新中)
    安卓开发-基础篇本篇文章算是自己学习的记录和补充,防止以后忘记。如果能够对大家有所帮助那就更好了。本文将会持续更新(根据本人的学习进度),如有问题,欢迎在评论区留言指正。目录目录安卓开发-基础篇目录1.简单控件1.1文本显示(Text,Color)1.1.1简要介绍1.1.2文本颜色1.2视......