一款简易垃圾识别app界面设计

在刚开始的初始界面做完后,这段时间大佬也完成了识别的功能,接着我们就将我们各自的内容结合在一起,在合并的过程中出现了亿点点小问题.就顺便写下来方便学习

显示/返回

在原界面上显示图片太小,显示不清晰,我们另用一个新的界面来显示识别的结果图片,首先要做到的就是新界面的跳转和返回;

新界面布局很简单,线性布局一个ImageButton一个ImageView就完事

<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageButtonandroid:id="@+id/return_main"android:layout_width="64dp"android:layout_height="64dp"android:background="#FFFFFF"android:src="@mipmap/return_main"></ImageButton><ImageViewandroid:id="@+id/show_image"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

按钮添加点击事件返回

/*点击返回按钮返回主界面*/btr=findViewById(R.id.return_main);btr.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {finish();}});

还有记得在AndroidManifest里添加

<activity android:name=".ShowImage" />

不然会闪退

跳转/传递数据

传递数据这一步,刚开始对我来说非常麻烦,因为在以往的activity里采用的传递数据inten在传递数据的时候是有大小限制的,网上有人做过测试,如果是传递Bitmap的话,当图片大小超过1024也就是1M左右的时候,程序就会出现闪退或者停止运行的情况(不同手机情况不同)。
经过查询和实践,我们最后采取了将图片保存到本地,再传递路径uri,并在跳转后将对应路径uri的图片取出的方法。
参考博客Activity之间传递数据

代码段

/*
传递路径并跳转
*/Intent intent=new Intent(MainActivity.this,ShowImage.class);
Uri imageUri=Uri.parse(Img.savePath);
intent.setData(imageUri);
startActivity(intent);
/*
显示
*/
show=findViewById(R.id.show_image);
Uri uri = Uri.fromFile(Img.filePic);//Img.filePic是File型
image=getBitmapFromUri(uri);//image是Bitmap类型
show.setImageBitmap(image);
//获取Uri中的bitmapprivate Bitmap getBitmapFromUri(Uri uri){try{// 读取uri资源中的bitmapBitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);return bitmap;}catch (Exception e){Log.e("[Android]", e.getMessage());Log.e("[Android]", "目录为:" + uri);e.printStackTrace();return null;}}

Img是我们自己封装的一个类

public class Img {public static String savePath;public static File filePic;public static void saveBitmap(Bitmap bitmap)
}

基本代码段就是这样,如果后续有修改那也会继续跟进,不过下一次改应该就是最后一版了。

【Android Studio】一款简易appUI界面开发(2)相关推荐

  1. Android studio设计一个简易微信界面

    一.设计要求及实现构想 1.设计一个简易微信界面框架,包含至少4个tab页面(我设计的4个分别为message.contact.find.config),要求能实现四个页面之间的点击切换. 2.首先分 ...

  2. 在Android Studio上进行OpenCV 3.1开发

    在Android Studio上进行OpenCV 3.1开发 发布于 2016年1月27日 作者: John Hany 5,466次阅读 2016.07.08更新:增加Android Studio 2 ...

  3. Android电视切换回放,Android Studio V3.12环境下TV开发教程(五)建立电视回放应用...

    Android Studio V3.12环境下TV开发教程 文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80619382 浏览和播 ...

  4. Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调

    Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调 ...

  5. android studio3.12,Android Studio V3.12环境下TV开发教程(六)提供卡片视图

    Android Studio V3.12环境下TV开发教程 文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80619656 在上一课 ...

  6. android studio大作业-简易计算器实现

    android studio大作业-简易计算器实现 先看效果图 基本功能:加,减,乘,除 核心代码实现 public class MainActivity extends AppCompatActiv ...

  7. Android Studio使用AIDL技术进行SDK开发

    前面我们有介绍AIDL的基本用法: Android进程间通信--AIDL Android进程间通信--AIDL Binder连接池 现在我们来介绍利用AIDL来实现一个简陋的SDK,将获取用户信息的方 ...

  8. Android Studio 实现地图定位(移动开发技术作业)

    文章目录 一.项目要求 二.项目功能展示 三.项目具体实现方法 1.创建项目及Android studio基础配置 2.将地图进行显示以及定位(代码实现) 四.遇到的问题解决方法及总结 五.项目源代码 ...

  9. NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)

    原文地址:http://blog.csdn.net/cuiyufeng2/article/details/64125594 前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的.  1. 它没 ...

  10. Android studio TCP网络调试助手应用开发(支持TCP Server与Client切换)

    在前几篇的文章中带大家完成了基于TCP的物联网安卓应用开发,教程内容是创建了一个TCP客户端并连接服务器完成数据通信的过程,后不久又发布了一个ESP8266创建TCP 服务器与安卓的客户端进行通信的一 ...

最新文章

  1. 为什么要读源代码,如何阅读源代码
  2. 最好机器学习NLP和python教程
  3. Linux如何修改用户名?
  4. MySQL / 自带的四个数据库介绍
  5. android MotionEvent中getX()和getRawX()的区别
  6. 博客园博客PDF生成器
  7. TensorFlow:实战Google深度学习框架(六)图像数据处理
  8. cookie 和session 的区别
  9. c mysql日期时间格式_mysql日期和时间类型
  10. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (20) - IvyBridge微架构
  11. oracle权限的分配
  12. 用R进行meta分析(meta包)
  13. 电影海报的字体如何设计?——黎乙丙
  14. JAV学习笔记—IO相关类
  15. matlab实现转换音频格式文件,mp3到wav的转换
  16. 「叫好」但是「不叫座」?no,「叫好」所以「不叫座」
  17. 2022哈工大计算机系统大作业
  18. vue使用过滤器,文字超出显示省略号
  19. Spring Boot 3.0.0正式发布,Banner不再支持图片增强可观测性
  20. macbook的appstore打不开的解决办法

热门文章

  1. 深蓝学院-多传感器融合定位-第4章作业
  2. arcgis语言如何中文改英文_ArcGIS的概述及中英文切换——附GIS名词解释大全(一)...
  3. Java对接支付宝的支付、退款、提现
  4. 阿里云ECS服务器实例是什么意思?关于实例的讲解
  5. 继电器触点RC吸收电路
  6. 本周最新文献速递20211128
  7. 项目整体流程及项目经理工作职责
  8. 操作系统清华 向勇 陈渝(RISC-V)(1)---概述
  9. 指数基金的分类以及投资方法
  10. 本体技术视点 | 为什么 BIP - 340 选择引入 Schnorr 签名算法?