IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 新大陆物联网Android开发实战(一)通过接入API文档获取新大陆物联网官网Logo-GET&POST&多线程实战-网络资源下载 -> 正文阅读

[移动开发]新大陆物联网Android开发实战(一)通过接入API文档获取新大陆物联网官网Logo-GET&POST&多线程实战-网络资源下载

目录

一、背景

二、思路与实施

????????权限配置:

? ? ? ? 布局设计:

? ? ? ? 布局代码:?

????????接口类实现代码:

? ? ? ? DownLoad类代码:

三、文章总结

四、源码下载


一、背景

? ? ? ? 本文章是针对新大陆物联网竞赛,其中Android开发的相关知识的总结与试验。本文主要通过Android程序与新大陆物联网端的通信,使用多线程下载新大陆Logo。

? ? ? ? 软件需求:Android Studio


二、思路与实施

? ? ? ? (本文章代码将在文章末尾免费提供)

????????权限配置:

? ? ? ? 本文涉及到网络下载,需要配置Android联网权限。

<uses-permission android:name="android.permission.INTERNET"/>

? ? ? ? 布局设计:

????????

? ? ? ? 布局代码:?

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:src="@mipmap/ic_launcher"/>
    <Button

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="down"
        android:text="下载"/>

</LinearLayout>

? ? ? ? 随后我们设计主程序:

? ? ? ? 主程序需要我们实现下载功能,下载功能需要在子线程中实现,下载后需要将资源传递至主线程,因为我们需要写一个接口用于数据传输。

????????接口类实现代码:

public interface Listener {
    void Data(byte[] data);
}

? ? ? ? 随后我们需要写一个下载类,用于实现下载功能。

? ? ? ? DownLoad类代码:

? ? ? ? 首先我们初始化私有对象,实现该类的构造方法,在构造方法中传入下载地址。

? ? ? ? 为了在主程序中能及时收到下载的图片,我们需要在类中设置监听器。

    private Listener listener;
    public void setListener(Listener listener)
    {
        this.listener=listener;
    }

? ? ? ? 随后,我们需要在主程序中初始化Imageview对象,并设置好监听器。

    private DownLoad downLoad;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView=(ImageView) findViewById(R.id.image);
    }

    public void down(View view) {
        downLoad=new DownLoad("http://api.nlecloud.com/images/nlogo_blue_s.png");
        downLoad.setListener(new Listener() {
            @Override
            public void Data(byte[] data) {
                imageView.setImageBitmap(BitmapFactory.decodeByteArray(data,0,data.length));
            }
        });
        downLoad.Down();
    }

? ? ? ? 可以看出,上边的程序调用了类中的Public下载方法,下面我们在类中实现这个方法。

? ? ? ? 至此,功能就实现啦。看效果图:

?


三、文章总结

? ? ? ? 本文主要使用了HttpUrlConnection类&URL类,并结合了GET&POST以及多线程的知识,这里暂时并没有用到异步任务,文章比较简单,可以说是必学知识点。


四、源码下载

?????????新大陆物联网竞赛Android程序(本题配套资源)免积分下载

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:26:57  更:2022-10-22 21:29:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:02:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码