首页 文章 精选 留言 我的

精选列表

搜索[API网关],共10000篇文章
优秀的个人博客,低调大师

Android 2.3 r1 中文 API (57) —— ScaleGestureDetector

正文 一、结构 public classScaleGestureDetectorextendsObject java.lang.Object android.view.ScaleGestureDetector 二、概述 根据接收的MotionEvent,侦测由多个触点(多点触控)引发的变形手势。callback方法ScaleGestureDetector.OnScaleGestureListener会在特定手势事件发生时通知用户。该类仅能和Touch事件引发的MotionEvent配合使用。使用该类需要 为你的View创建ScaleGestureDetector实例 确保在onTouchEvent(MotionEvent)方法中调用onTouchEvent (MotionEvent). [译者注:前者为该类的onTouchEvent方法,后者为View的onTouchEvent方法。]在事件发生时,定义在callback中的方法会被调用。 (译者注: ScaleGestureDetector 为 Android2.2 新增的类,允许 Views 可以通过提供的 MotionEvents 检测和处理包括多点触摸在内的手势变化信息。) 三、内部类 interfaceScaleGestureDetector.OnScaleGestureListener 手势发生时接收通知的监听器 class ScaleGestureDetector.SimpleOnScaleGestureListener 一个方便使用的类。若仅想监听一部分尺寸伸缩事件,可继承该类。 四、构造函数 publicScaleGestureDetector(Context context, ScaleGestureDetector.OnScaleGestureListener listener) 构造函数 五、公共方法 public floatgetCurrentSpan() 返回手势过程中,组成该手势的两个触点的当前距离。 返回值 以像素为单位的触点距离。 public longgetEventTime() 返回事件被捕捉时的时间。 返回值 以毫秒为单位的事件时间。 public floatgetFocusX() 返回当前手势焦点的X坐标。如果手势正在进行中,焦点位于组成手势的两个触点之间。如果手势正在结束,焦点为仍留在屏幕上的触点的位置。若isInProgress()返回false,该方法的返回值未定义。 返回值 返回焦点的X坐标值,以像素为单位。 public floatgetFocusY() 返回当前手势焦点的Y坐标。如果手势正在进行中,焦点位于组成手势的两个触点之间。如果手势正在结束,焦点为仍留在屏幕上的触点的位置。若isInProgress()返回false,该方法的返回值未定义。 返回值 返回焦点的Y坐标值,以像素为单位。 public floatgetPreviousSpan() 返回手势过程中,组成该手势的两个触点的前一次距离。 返回值 两点的前一次距离,以像素为单位。 public floatgetScaleFactor() 返回从前一个伸缩事件至当前伸缩事件的伸缩比率。该值定义为(getCurrentSpan() / getPreviousSpan())。 返回值 当前伸缩比率. public longgetTimeDelta() 返回前一次接收到的伸缩事件距当前伸缩事件的时间差,以毫秒为单位。 返回值 从前一次伸缩事件起始的时间差,以毫秒为单位。 public booleanisInProgress() 如果手势处于进行过程中,返回true. 返回值 如果手势处于进行过程中,返回true。否则返回false。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582565,如需转载请自行联系原作者

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

android 2.3 r1 中文 api (58) —— TabHost

正文 一、结构 public classTabHost extendsFrameLayoutimplementsViewTreeObserver.OnTouchModeChangeListener java.lang.Object android.view.View android.view.ViewGroup android.widget.FrameLayout android.widget.TabHost 二、概述 提供选项卡(Tab页)的窗口视图容器。此对象包含两个子对象:一组是用户可以选择指定Tab页的标签;另一组是FrameLayout用来显示该Tab页的内容。个别元素通常控制使用这个容器对象,而不是设置在子元素本身的值。 (译者注:即使使用的是单个元素,也最好把它放到容器对象ViewGroup里) 三、内部类 interface TabHost.OnTabChangeListener 接口定义了当选项卡更改时被调用的回调函数 interface TabHost.TabContentFactory 当某一选项卡被选中时生成选项卡的内容 class TabHost.TabSpec 单独的选项卡,每个选项卡都有一个选项卡指示符,内容和tag标签,以便于记录. 四、公共方法 public voidaddTab(TabHost.TabSpec tabSpec) 新增一个选项卡 参数 tabSpec指定怎样创建指示符和内容. public voidclearAllTabs() 从tab widget中移除所有关联到当前tab host的选项卡 public booleandispatchKeyEvent(KeyEvent event) 分发按键事件到焦点传递路线上的下一视图。焦点传递路线从视图树的顶层开始一直到当前获取焦点的视图停止。如果此视图已经获取焦点,将分发给它自身。否则,将分发到焦点传递路线的下一节点。此方法会触发任何一个按键监听器. (译者注:关于focus path,可以参考以下地址: http://blog.csdn.net/maxleng/archive/2010/05/04/5557758.aspx) 参数 event分发的按键事件 返回值 如果事件已经处理则返回true,否则返回false. public voiddispatchWindowFocusChanged(boolean hasFocus) 当窗口包含的此视图获取或丢失焦点时触发此方法.ViewGroups应该重写以路由到他的子元素 参数 hasFocus如果窗口包含的此view依获取焦点,返回true,否则返回false. public intgetCurrentTab() (译者注:获取当前选项卡的id) public StringgetCurrentTabTag() (译者注:当前选项卡的Tag标签内容) public ViewgetCurrentTabView() (译者注:获取当前选项卡的视图view) public ViewgetCurrentView() (译者注:获取当前的视图view) public FrameLayoutgetTabContentView() 获取保存tab内容的FrameLayout public TabWidgetgetTabWidget() (译者注:根据系统规定的id:tabs来找到TabWidget,并返回,注意,这里的ID必须是tabs。源代码中表示如下: private TabWidget mTabWidget; mTabWidget=(TabWidget)findViewById(com.android.internal.R.id.tabs);) public TabHost.TabSpecnewTabSpec(String tag) 获取一个新的TabHost.TabSpec,并关联到当前tab host 参数 tag所需的选项卡标签(tag) public voidonTouchModeChanged(boolean isInTouchMode) 当触摸模式发生改变时调用的回调函数. 参数 isInTouchMode如果视图结构当前处于触摸模式,返回true,否则返回false. public voidsetCurrentTab(int index) (译者注:设置当前的选项卡 参数 Index为当前选项卡的索引。) public voidsetCurrentTabByTag(String tag) (译者注:根据选项卡的Tab标签来设置当前的选项卡 参数 tag想要被设置为当前选项卡的tag标签值。) public voidsetOnTabChangedListener(TabHost.OnTabChangeListener l) 注册一个回调函数,当选项卡中的任何一个tab的选中状态发生改变时调用。 (译者注:setCurrentTab(index)时会触发调用) 参数 l将运行的回调函数 public voidsetup() 如果使用findViewById()加载TabHost,那么在新增一个选项卡tab之前,需要调用setup()。然而,当你在一个TabActivity里使用getTabHost()获取TabHost,你就不再需要调用setup()了。(译者注:实现tab窗口的两种方法:继承activity时,使用findViewById()查找TabHost,然后调用setup();继承TabActivity,通过getTabHost()查找,此时不用调用setup())例子: public voidsetup(LocalActivityManager activityGroup) 如果你使用setContent(android.content.Intent),那么当activityGroup用于加载本地activity之时,必须调用此方法。如果你拓展(继承)TabActivity将自动调用setup()方法。 参数 activityGroup用来为选项卡内容加载activities的ativityGroup 五、受保护方法 protected voidonAttachedToWindow() 当视图附加到窗口上时被调用。在这个点的表面进行绘制。注意此函数确保在onDraw(Cancas)之前调用,然而它可能在第一次执行onDraw之前的任何时间被调用——包括的onMeasure(int,int)的之前或之后。 protected void onDetachedFromWindow () 当视图从窗口分离时被调用。在这个点的表面不再有画面绘制。 六、补充 文章链接 史上最全的Android的Tab与TabHost讲解 Android UI设计Tab TabHost标签页的使用 Android控件之TabHost Tab页 动态Tab页 示例代码 截图: JAVA文件: public class Tabs1 extends TabActivity{ @Override protected void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); TabHosttabHost = getTabHost(); LayoutInflater.from( this ).inflate(R.layout.tabs1,tabHost.getTabContentView(), true ); tabHost.addTab(tabHost.newTabSpec( " tab1 " ) .setIndicator( " tab1 " ) .setContent(R.id.view1)); tabHost.addTab(tabHost.newTabSpec( " tab3 " ) .setIndicator( " tab2 " ) .setContent(R.id.view2)); tabHost.addTab(tabHost.newTabSpec( " tab3 " ) .setIndicator( " tab3 " ) .setContent(R.id.view3)); } } XML文件: <? xmlversion="1.0"encoding="utf-8" ?> < FrameLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="match_parent" android:layout_height ="match_parent" > < TextView android:id ="@+id/view1" android:background ="@drawable/blue" android:layout_width ="match_parent" android:layout_height ="match_parent" android:text ="@string/tabs_1_tab_1" /> < TextView android:id ="@+id/view2" android:background ="@drawable/red" android:layout_width ="match_parent" android:layout_height ="match_parent" android:text ="@string/tabs_1_tab_2" /> < TextView android:id ="@+id/view3" android:background ="@drawable/green" android:layout_width ="match_parent" android:layout_height ="match_parent" android:text ="@string/tabs_1_tab_3" /> </ FrameLayout > 详细参见apidemo/view/tabs1 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582561,如需转载请自行联系原作者

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

使用三方API的好与坏

目前所有领域都在软件化、智能化,软件在残蚀着一切,所有企业都开始注重软件的开发。3月5日,李克强总理代表国务院对大会作了政府工作报告中提及: 深入实施《中国制造2025》,加快大数据、云计算、物联网应用,以新技术新业态新模式,推动传统产业生产、管理和营销模式变革。把发展智能制造作为主攻方向,推进国家智能制造示范区、制造业创新中心建设,深入实施工业强基、重大装备专项工程,大力发展先进制造业,推动中国制造向中高端迈进。 支持和引导分享经济发展,提高社会资源利用效率,便利人民群众生活。推动“互联网+”深入发展、促进数字经济加快成长,让企业广泛受益、群众普遍受惠。 然而在您开始软件化时会发现: 除了要实现核心业务之外,还需要提供更多的功能来促进核心业务的运行或者改善用户体验,然而这需要大量的开发。例如:当您的用户上传身份证、银行卡等照片时使用图片

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

java api 调用es集群(1.7版本)

public static void main(String[] args) { Settings settings = ImmutableSettings.settingsBuilder() // client.transport.sniff=true // 客户端嗅探整个集群的状态,把集群中其它机器的ip地址自动添加到客户端中,并且自动发现新加入集群的机器 .put("client.transport.sniff", true).put("client", true)// 仅作为客户端连接 .put("data", false).put("cluster.name", "elasticsearch")// 集群名称 .build(); TransportClient client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("192.168.10.140", 9300))// TCP // 连接地址 .addTransportAddress(new InetSocketTransportAddress("192.168.10.124", 9300)); List<String> jsonData = BlogController.initData(); String json = "{" + "\"user\":\"金旭东\"," + "\"postDate\":\"2013-01-30\"," + "\"message\":\"测试elsaticsearch\"" + "}"; for (int i = 0; i < 1; i++) { IndexResponse response = client.prepareIndex("blog", "article").setSource(json).get(); if (response.isCreated()) { System.out.println("创建成功!"); } } client.close(); }

资源下载

更多资源
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等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册