首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Android基础知识之Toolbar的使用

Toolbar是Android5.0推出的,用来替代ActionBar的控件.可以高度的自定义,使用灵活.官方的ToolBar是必须在5.0以上的系统才能使用,如果需要在低版本中使用.需要使用support v7包中的Toolbar。 下一是官网的Toolbar的介绍: Toolbar extendsViewGroup java.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.support.v7.widget.Toolbar 使用前提 要使用ToolBar需要将activity的ActionBar隐藏掉.那么如何隐藏呢?有三种方法.下面分别介绍 方法一: 在res/values/styles.xml文件中修改 <stylename="AppTheme.Base"parent="Theme.AppCompat"> <itemname="windowActionBar">false</item> <itemname="android:windowNoTitle">true</item> </style> 也可以直接使用没有ActionBar的主题 <stylename="AppTheme"parent="Theme.AppCompat.Light.NoActionBar"> 方法二: 在清单文件中修改制定activity的主题,如下所示: <activityandroid:name="MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> </activity> 方法三: 直接在代码中取消. 在setContentView之前。 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //supportRequestWindowFeature(Window.FEATURE_NO_TITLE);在AppCompatActivity中 怎么使用 在布局文件中.添加如下代码. 位置不固定。 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:background="?attr/colorPrimaryDark" app:title="Title" app:titleTextColor="#222222" app:logo="@mipmap/ic_launcher" app:subtitle="subtitle"></android.support.v7.widget.Toolbar> title 用来设置标题.subtitle设置副标题 titleTextColor用来设置标题字体颜色.background用来设置背景颜色..效果如下: 在java代码中也可以动态的设置这些值。 mToolbar.setTitle("JavaTitle"); mToolbar.setSubtitle("JavaSubTitle"); mToolbar.setLogo(R.mipmap.ic_launcher); mToolbar.setNavigationIcon(android.R.drawable.ic_input_delete); mToolbar.setOverflowIcon(ContextCompat.getDrawable(this,android.R.drawable.ic_menu_more)); /setActionBar(mToolbar);//activity中 setSupportActionBar(mToolbar);//AppCompatActivity中 添加Menu 要添加menu首先我们需要有menu,在这里我选择在res/menu/中创建main.xml来定义menu文件.代码如下 <?xmlversion="1.0"encoding="utf-8"?> <menuxmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/add" android:icon="@android:drawable/ic_menu_add" android:title="Add" app:showAsAction="never|withText"/> <item android:id="@+id/delete" android:icon="@android:drawable/ic_menu_delete" android:title="Delete" app:showAsAction="never|withText"/> <item android:id="@+id/edit" android:icon="@android:drawable/ic_menu_edit" android:title="Edit" app:showAsAction="never|withText"/> <item android:id="@+id/email" android:icon="@android:drawable/sym_action_email" android:title="Email" app:showAsAction="never|withText"/> </menu> 下面是java文件中的代码。 @Override publicbooleanonCreateOptionsMenu(Menumenu){ getMenuInflater().inflate(R.menu.main,menu); returntrue; } @Override publicbooleanonOptionsItemSelected(MenuItemitem){ switch(item.getItemId()){ caseandroid.R.id.home: Toast.makeText(MainActivity.this,"您点击了NavigationIcon",Toast.LENGTH_SHORT).show(); break; caseR.id.add: Toast.makeText(MainActivity.this,"Add",Toast.LENGTH_SHORT).show(); break; caseR.id.delete: Toast.makeText(MainActivity.this,"Delete",Toast.LENGTH_SHORT).show(); break; caseR.id.edit: Toast.makeText(MainActivity.this,"Edit",Toast.LENGTH_SHORT).show(); break; caseR.id.email: Toast.makeText(MainActivity.this,"Email",Toast.LENGTH_SHORT).show(); break; } returntrue; } 显示Menu中的Icon 在写到这里之后.我们会发现.隐藏的menu是不显示icon的,那么我们怎么设置呢: 只需要重新一下方法: 这里的activity是 AppCompatActivity @Override protectedbooleanonPrepareOptionsPanel(Viewview,Menumenu){ if(menu!=null){ if(menu.getClass()==MenuBuilder.class){ try{ Methodm=menu.getClass().getDeclaredMethod("setOptionalIconsVisible",Boolean.TYPE); m.setAccessible(true); m.invoke(menu,true); }catch(Exceptione){ Log.i("tag","onPrepareOptionsPanel:"+ getClass().getSimpleName()+ "onMenuOpened...unabletoseticonsforoverflowmenu" +e); } } } returnsuper.onPrepareOptionsPanel(view,menu); } 效果如下: 作者:Magicer 来源:51CTO

优秀的个人博客,低调大师

区块链技术基础:术语和用例

1. 区块和区块链 区块链是一种分布在整个业务网络上的共享账本。业务交易被永久记录在仅附加到账本的区块中。所有经过确认和证明的交易都从创始区块一直链接到最新的区块,因而得名区块链。区块链是自网络中的区块链启动以来发生的所有交易的历史记录。区块链被用作该网络的单一事实来源。 区块链网络可以是许可网络或无许可网络。无许可 网络向所有参与方开放,参照网络上的已有规则对交易进行验证。任何参与方都可以查看账本上的交易,即使参与方是匿名的。比特币是人们最熟悉的一个无许可网络示例。 另一方面,许可网络仅能由给定业务网络中的参与者访问。在许可区块链上,参与者只允许查看与他们相关的交易。Hyperledger Project 就是为支持许可区块链的开发而创立的。 2. 交易、资产和一致性 深入了解区块链网络概念 在 “分布式账本简介” 中了解区块链网络的优势。 交易 是传输到账本或从账本传出的资产。任何可被拥有或控制来产生价值的事物都是资产。资产可以是有形的(比如住宅或汽车)或无形的(比如抵押或租赁)。 账本中的条目被同步到网络中的所有账本。区块链网络中的参与方处理的每个账本副本被称为节点。节点之间的一致性 能确保共享账本是精确的副本,并降低发生交易欺诈的风险,因为篡改需要同时在许多地方进行。 要实现一致性,所有参与者都必须同意交易并通过对等网络验证它。参与者还可以建立验证交易的规则。与无许可区块链中存在的更高成本相比,受信任的参与者网络可减少在节点之间建立一致性的成本。 3. 密码哈希算法和数字签名 密码哈希算法(比如 SHA256 计算算法)利用可变大小的交易输入生成一个固定大小的唯一哈希值(被称为摘要)。哈希运算包含一个数学属性,那就是一个给定输入只能得到一个唯一的哈希值,但不能从哈希值推导出输入。一个给定的输入总是会计算出相同的哈希值。 对交易输入的任何修改或改动 — 甚至是最细微的更改 — 都会导致计算出不同的哈希值,这表明交易输入可能被损坏。因此,可使用哈希值检测交易输入的完整性。 数字签名可以确保接收者收到的交易数据中没有包含修改或伪造过的交易内容,还可以确保交易源自发送方(已使用私钥进行签名),而不是来自冒充者。 对称密钥加密使用一个私钥来加密和解密数据。该密钥必须使用一个安全网络进行共享,而数据可在不安全的网络上广播,但能由拥有该私钥的各方读取: 区块链技术使用了公钥加密,也称为非对称密钥加密。在公钥加密中,每个参与者都有一个公钥/私钥对。发送者可以使用接收者的公钥来加密数据。然后只能使用接收者的私钥读取文档或数据。非对称密钥加密在传输数据时无需使用安全网络来交换密钥。 4. 智能合约和链代码 要使用拟议的交易来更新账本,每个节点必须按照智能合约 的逻辑来处理交易。智能合约由直接在复制的网络上运行的程序组成。智能合约使用一种编程语言在区块链上对业务规则或合同进行编码,由网络中的所有参与者执行。这些程序在 Hyperledger Fabric 中称为链代码,它们被复制到网络中的每个节点,并由拥有权限的各方调用来传输资产。 链代码必须是确定的,也就是说,相同的输入必须始终产生相同的输出。因此,每个节点可以相信它和对等节点处理的是同一个交易。 5. 区块链应用 一个区块链应用需要 3 个相互依赖的组件:面向用户的应用、智能合约和账本。 顶层是面向用户的应用,用于满足网络参与者的需求。该应用让用户调用智能合约在业务网络中触发交易。智能合约 封装网络的业务逻辑:资产、所有权和传输方式。每次调用智能合约,都会在网络中创建一个交易并更新账本。账本 持有智能合约数据的当前值(如 vehicleOwner=Daisy),并分发到整个网络。 6. 区块链用例 区块链技术对许多行业而言是一种潜在的颠覆性技术,因为它能更顺利、更高效地组织活动。而且它能协调参与者之间更大规模的活动。下面给出了一些可从区块链技术中受益的用例: (1)物联网 设备管理 (2)医疗保健 电子医疗记录 病毒库 种子库备份 医生-供应商 RFP 服务和保险合同 区块链健康研究共享空间 区块链健康司法人员 (3)金融服务 信用证 公司债务和债券 交易平台 支付汇款 再购买协议 外汇 (4)保险 索赔处理 P2P 保险 所有权 销售和承保 (5)政府 政府招标程序 选举 税收 (6)工业 制造流程 (7)零售 顾客忠诚度 (8)跨行业 身份管理 信托行业 资本资产管理 (9)其他行业 游戏 音乐 作者:佚名 来源:51CTO

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册