【Android Studio】一款简易appUI界面开发(2)
一款简易垃圾识别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)相关推荐
- Android studio设计一个简易微信界面
一.设计要求及实现构想 1.设计一个简易微信界面框架,包含至少4个tab页面(我设计的4个分别为message.contact.find.config),要求能实现四个页面之间的点击切换. 2.首先分 ...
- 在Android Studio上进行OpenCV 3.1开发
在Android Studio上进行OpenCV 3.1开发 发布于 2016年1月27日 作者: John Hany 5,466次阅读 2016.07.08更新:增加Android Studio 2 ...
- Android电视切换回放,Android Studio V3.12环境下TV开发教程(五)建立电视回放应用...
Android Studio V3.12环境下TV开发教程 文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80619382 浏览和播 ...
- Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调
Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调 ...
- android studio3.12,Android Studio V3.12环境下TV开发教程(六)提供卡片视图
Android Studio V3.12环境下TV开发教程 文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80619656 在上一课 ...
- android studio大作业-简易计算器实现
android studio大作业-简易计算器实现 先看效果图 基本功能:加,减,乘,除 核心代码实现 public class MainActivity extends AppCompatActiv ...
- Android Studio使用AIDL技术进行SDK开发
前面我们有介绍AIDL的基本用法: Android进程间通信--AIDL Android进程间通信--AIDL Binder连接池 现在我们来介绍利用AIDL来实现一个简陋的SDK,将获取用户信息的方 ...
- Android Studio 实现地图定位(移动开发技术作业)
文章目录 一.项目要求 二.项目功能展示 三.项目具体实现方法 1.创建项目及Android studio基础配置 2.将地图进行显示以及定位(代码实现) 四.遇到的问题解决方法及总结 五.项目源代码 ...
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
原文地址:http://blog.csdn.net/cuiyufeng2/article/details/64125594 前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的. 1. 它没 ...
- Android studio TCP网络调试助手应用开发(支持TCP Server与Client切换)
在前几篇的文章中带大家完成了基于TCP的物联网安卓应用开发,教程内容是创建了一个TCP客户端并连接服务器完成数据通信的过程,后不久又发布了一个ESP8266创建TCP 服务器与安卓的客户端进行通信的一 ...
最新文章
- 为什么要读源代码,如何阅读源代码
- 最好机器学习NLP和python教程
- Linux如何修改用户名?
- MySQL / 自带的四个数据库介绍
- android MotionEvent中getX()和getRawX()的区别
- 博客园博客PDF生成器
- TensorFlow:实战Google深度学习框架(六)图像数据处理
- cookie 和session 的区别
- c mysql日期时间格式_mysql日期和时间类型
- Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (20) - IvyBridge微架构
- oracle权限的分配
- 用R进行meta分析(meta包)
- 电影海报的字体如何设计?——黎乙丙
- JAV学习笔记—IO相关类
- matlab实现转换音频格式文件,mp3到wav的转换
- 「叫好」但是「不叫座」?no,「叫好」所以「不叫座」
- 2022哈工大计算机系统大作业
- vue使用过滤器,文字超出显示省略号
- Spring Boot 3.0.0正式发布,Banner不再支持图片增强可观测性
- macbook的appstore打不开的解决办法