Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android 练手之旅——PhotoHunter(二) #4

Open
soapgu opened this issue Feb 24, 2021 · 0 comments
Open

Android 练手之旅——PhotoHunter(二) #4

soapgu opened this issue Feb 24, 2021 · 0 comments
Labels
Demo Demo 安卓 安卓

Comments

@soapgu
Copy link
Owner

soapgu commented Feb 24, 2021

今天一早PhotoHunter的第一版给最小年龄用户试用了,效果不错(不肯放手)。以后可以考虑把图片的说明用语音播报出来(有点像看图说话早教软件了),有点带偏回正规。
思索了下昨天的APP还是太粗糙了,接下来列出改进目标

  1. 首先OkHttpClient没有写成共享实例,一旦配置修改。Activity回收啥就等于要重建了。不符合使用规范
  2. 屏幕翻转一下,图片和文字说明全都“丢”了,看来图片直接放Activity成员变量里面不行,会丢。还是要考虑把图片缓存到存储里面。要保障翻屏不丢(看来,横竖屏切换是个很好的测试用例)
  3. 横屏竖屏需要弄成两种布局,相当于WPF里面Caliburn.Micro里面的MutiView的功能

老规矩,先定目标后面执行,再来更新

首先试试OkHttpClient没有使用共享实例的恶果,先竖屏获取照片信息及照片文件,首次握手卡顿,再次获取变得非常流畅了,应该是多路复用的功劳。切换横屏以后,再次获取又开始卡顿了,应该是建立新的socket连接又在握手了。侧面证明了OkHttpClient的生命周期目前和Activity一致是个短命鬼。
改成static,好了切换屏幕后,连接速度仍然很快。socket应该是保持了。

第二条先放放,第三条先做,理由是第三条更好玩一些
1 新增 Resource Directory,选 Resource type = layout, Available qualifiers = Orientation, >> , Landscape
2 到 Project 视图下,新增 Layout Resource File,Name = activity_main
3 然后到Android视图下,可以看到activity_main多出来一个文件夹,并把同组文件放一起。很smart。
4 做一个横屏布局如图
图片
5 为了再玩下value resource的适配能力,增加一个layoutstrings.xml的资源(不同把全体字符串全去适配)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="orientation">Vertical Mode</string>
</resources>

依样画葫芦以次去创建values-land文件夹及layoutstrings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="orientation">Horizontal Mode</string>
</resources>

6 把 两个布局文件activity_main.xml里面的TextView的Text赋值为@string/orientation

<TextView
        android:id="@+id/msg_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:text="@string/orientation"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

图片
图片

参考链接

第二个目标完成了,完成缓存了图片到文件缓存目录,json暂存InstanceState。push了,但是代码实在是有点丑。明天继续优化今天暂时到这里了
(未完待续)

@soapgu soapgu added Demo Demo 安卓 安卓 labels Feb 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Demo Demo 安卓 安卓
Projects
None yet
Development

No branches or pull requests

1 participant