fragment

安卓开发笔记——打造属于自己的博客园APP(二)

ぐ巨炮叔叔 提交于 2020-02-13 02:12:50
  最近事情比较多,博客更新又落下了,平时有个习惯,喜欢睡前看看博客园里博友的文章,但一直感觉APP市场上下载下来的博客园客户端用起来并不是很舒服,近来发现博客园也有对外开放的数据接口,所以打算自己写个博客园的客户端。   近来谷歌推出了一套全新的UI设计规范——Material Design,不清楚的朋友看看《 Material design非官方中文指导手册 》,相比之前谷歌在Android Holo风格上平平淡淡的表现不同,Material Design现在是被Google所比较重视的。在推出这门全新设计语言后,谷歌上自家的应用很快就使用Material Design全新设计了,如Play商店,Google Map,Google+等等。   打算赶一下潮流,紧跟谷歌的步伐遵循Material Design设计规范开发这个APP,也刚好让自己熟悉下Android5.0后的新特性。这个APP会慢慢做下来,逐步完善所需功能,我也不确定会写几篇文章,反正有空闲的时候就拿出来写写吧。    初步打算实现用户的登陆,分类查看文章内容,新闻内容,包括用户信息的浏览,关注,偏好文章的收藏以及离线阅读功能,大家如果有什么好的建议,可以在文章评论给我留言,虚心请教。 好了,言归正传,先来看下今天要实现的效果:(UI主框架的搭建) 如果在过去,我们要实现上图的效果

安卓开发学习03

安稳与你 提交于 2020-02-12 18:51:03
写在前面: 在经过一系列思考后,决定制作一个简易的疫情登记APP,主要提供如下功能: 1.疫情登记,可以登记每日的体温及是否健康(涉及使用Room框架进行增删改查) 2.图表展示 ,通过图标显示每日的体温变化(拟使用hellocharts,待学习) 3.展示每日情况,通过ListView进行一个每日疫情情况的展示(这块主要是使用ListView进行列表展示,同时使用Room框架进行增删改查功能) 4.界面,提供一个下方导航条,其中有两个fragment和一个按钮(今日学习内容) 今日学习: 首先看大概的设计图: 今日主要学习了如何使用 Fragment 、 RadioGroup 、RadioButton 来构建一个底部的导航,效果如图: 主要贴一下后台的代码: package com.test.dailyrecord; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.util.SparseArray; import android.view.View; import android.widget

Unity Shader Early-Z技术

老子叫甜甜 提交于 2020-02-09 23:06:08
Early-Z技术 传统的渲染管线中,ZTest其实是在Blending阶段,这时候进行深度测试,所有对象的像素着色器都会计算一遍,没有什么性能提升,仅仅是为了得出正确的遮挡结果,会造成大量的无用计算,因为每个像素点上肯定重叠了很多计算。 因此现代GPU中运用了Early-Z的技术,在Vertex阶段和Fragment阶段之间(光栅化之后,fragment之前)进行一次深度测试,如果深度测试失败,就不必进行fragment阶段的计算了,因此在性能上会有很大的提升。但是最终的ZTest仍然需要进行,以保证最终的遮挡关系结果正确。 前面的一次主要是Z-Cull为了裁剪已达到优化的目的,后一次主要是Z-Check,为了检查,如下图: Early-Z的实现,主要是通过一个Z-pre-pass显示,简单来说,对于所有不透明的物体(透明的没有用,本身不会写入深度),首先用一个超级简单的shader进行渲染,这个shader不写入颜色缓冲区,只写深度缓冲区,第二个pass关闭深度写入,开启深度测试,用正常的shader进行渲染。其实这种技术,我们也可以借鉴,在渲染透明物体时,因为关闭了深度写入,有时候会有其他不透明的部分遮挡住透明的部分,而我们其实不希望他们被遮挡,仅仅希望被遮挡的物体半透,这时我们就可以用两个pass来渲染,第一个pass使用Color Mask屏蔽颜色写入,仅写入深度

sapui5 walkthrough 16-20

若如初见. 提交于 2020-02-09 18:20:32
16 Step 16: Dialogs and Fragments fragments 是一个轻量级的UI组件,可以重用,但没有任何controller。 当你想定义一个跨多个视图的,特定的ui的一部分时,可以选择fragments。 一个fragment里面可以包括一个到多个控件,在运行的时候,视图中的fragments中的控件的内容会像普通视图中的content内容一样,被包含在视图的DOM中。这样我们可以像访问普通视图的控件一样,直接访问fragments中的控件。 当然,也有一些控件不会成为视图的一部分,例如对话框。 添加一个对话框到应用程序中,对话框打开在常规的应用程序内容之上,因此不属于特定的视图,所以必须在controller的某个地方进行实例化。 另外由于需要尽可能灵活的重用构件,并且不能将对话框指定为view,所以我们将创建包含dialog的XML fragment。 修改 HelloPanel.view.xml <mvc:View controllerName="sap.ui.demo.walkthrough.controller.HelloPanel" xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc"> <Panel headerText="{i18n>helloPanelTitle}" class=

Android学习_Fragment

别说谁变了你拦得住时间么 提交于 2020-02-09 18:12:52
Fragment 使用 Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个 模块化的管理 。从而可以更加方便的在 运行过程中动态地更新 Activity 的用户界面 。另外 Fragment 并不能单独使用,他需要嵌套在 Activity 中使用,尽管他拥有自己的生命周期,但是还是会受到宿主 Activity 的生命周期的影响,比如 Activity 被 destory 销毁了,他也会跟着销毁。 l Fragment 是依赖于 Activity 的,不能独立存在的。 l 一个 Activity 里可以有多个 Fragment 。 l 一个 Fragment 可以被多个 Activity 重用。 l Fragment 有自己的生命周期,并能接收输入事件。 l 我们能在 Activity 运行时动态地添加或删除 Fragment 。 1. 静态加载 Fragment    2. 动态加载 Fragmnet 3. Fragment 管理与 Fragment 事务 4. Fragment 与 Activity 的交互    参考: https://www.runoob.com/w3cnote/android-tutorial-fragment-base.html 来源: https://www.cnblogs.com/pomodoro/p/11328132.html

Activity与Fragment之间交互——Handler

佐手、 提交于 2020-02-09 18:10:18
问题:现在activity使用viewpager,viewpager‘的元素是fragment,该activity作为startActivityForResult的结果,所以在结束时需要传递当前信息给前intent,其中包括当前fragment的 实例中的变量。 说明:这种方法,在activity获得的只是一个类,但是不具备用户交互改变fragment的变量 WillFragment fragment=(WillFragment) mAdapter.getItem(mViewPager.getCurrentItem()); 解决: Activity代码,接收fragment传递message: private Handler handler; private Intent backIntent; ............. setHandler(new Handler(new Callback() { @Override public boolean handleMessage(Message message) { // TODO Auto-generated method stub backIntent=(Intent) message.obj; return false; } })); 相应fragment代码,向activity传递Message: Message

Fragment与Activity交互(使用Handler)

谁说胖子不能爱 提交于 2020-02-09 18:09:39
1.在Activity中定义一个方法用来设置Handler对象 public void setHandler(Handler handler) { mHandler = handler; } 2.在Fragment中的回调函数onAttach()中得到Fragment所在的Activity,并调用setHandler方法,设置Handler。该Handler在Fragment中定义,用来接收来自Activity的消息 @Override public void onAttach(Activity activity) { super.onAttach(activity); mActivity = (MainActivity) activity; mActivity.setHandler(mHandler); } public Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case 1: text.setText((String) msg.obj); break; } }; }; 3.在Activity发送消息给Fragment的Handler Message msg = new Message(); mHandler

Android Fragment与Activity交互的几种方式

ε祈祈猫儿з 提交于 2020-02-09 18:08:34
这里我不再详细介绍那写比较常规的方式,例如静态变量,静态方法,持久化,application全局变量,收发广播等等。 首先我们来介绍使用Handler来实现Fragment与Activity 的交互。 第一步,我们需要在Activity中定义一个方法用来设置Handler对象。 public void setHandler(Handler handler) {     mHandler = handler; } 第二步,在Fragment中的回调函数onAttach()中得到Fragment所在Activity,并调用setHandler方法,设置Handler。该Handler在Fragment中定义,用来接收消息与Fragment进行交互。 @Override public void onAttach(Activity activity) { super.onAttach(activity); mActivity = (MainActivity) activity; mActivity.setHandler(mHandler); } public Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case 1:

【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader

浪子不回头ぞ 提交于 2020-02-08 09:38:50
本文为翻译,附上 原文链接 。 转载请注明出处—— polobymulberry-博客园 。 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader)。 你想实现复杂的多通道着色器(multipass),但是对其不是很了解。 你想使用上面提到的两种技术(片段着色器和多Pass)来实现描边效果的Toon shader,你就需要理解这两种技术的概念。 学习资源 Martin Kraus's fantastic Wiki Book GLSL Programming/Unity 引论 在教程的第4部分,我们创建了一个相当好的toon shader,该shader使用了边缘光照(rim lighting)对模型进行描边 — 但是这种方法的问题在于它只能使用在表面光滑的模型上。对于那些平整的,有棱角的表面,我们计算其边缘的法向量时,会发现两个面的边界法向会产生突变(比如正方形的六个面,单个面上的法向都一致,但是两个面之间的法向会发生突变,不像球面上的法向是渐变的),这将产生我们不想要的边界效果。 有一个更好的办法对模型进行描边效果处理 — 先将模型背面稍微扩大一些(边缘延伸一些)然后渲染为全黑,最后正常渲染模型正面即可,这样我们看到的黑色边缘其实是背面呈现的颜色。这就要求在shader中使用两个Pass — 你可能还记得

Android——ViewPager和Fragment混合使用

人盡茶涼 提交于 2020-02-08 02:12:06
ViewPager经常用来连接Fragment,它很方便管理每个页面的生命周期,使用ViewPager管理Fragment是标准的适配器实现。最常用的实现一般有FragmentPagerAdapter和FragmentStatePagerAdapter。通过为UI添加ViewPager后,用户可以左右滑动屏幕,切换到不同的Fragment页面。 下面将通过一个简单的实例进行ViewPager和Fragment混合使用。 我们设计了三个按钮分别是首页、联系人和我的,并创建了3个Fragment页面。不但可以通过左右滑动实现页面切换,也可以通过按钮点击切换页面。下面我们来看一下详细代码。 一、创建一个Activity命名为FragmentViewPagerActivity.java和一个布局文件activity_view_pager.xml,具体代码如下: activity_view_pager.xml < ? xml version = "1.0" encoding = "utf-8" ? > < RelativeLayout xmlns : android = "http://schemas.android.com/apk/res/android" xmlns : tools = "http://schemas.android.com/tools" android : layout