首页 文章 精选 留言 我的

精选列表

搜索[箭头样式],共7775篇文章
优秀的个人博客,低调大师

android94 样式和主题

style.xml <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppBaseTheme" parent="android:Theme.Light"> </style> <style name="AppTheme" parent="AppBaseTheme"> <!-- 主题AppTheme继承AppBaseTheme --> </style> <style name="jiangnanstyle"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">22sp</item> <item name="android:textColor">#00ff00</item> </style> <style name="pangzhi" parent="jiangnanstyle"> <item name="android:textSize">30sp</item> </style> <style name="pangzhi.lizhi" > <!-- style名字是lizhi继承pangzhi --> <item name="android:textColor">#0000ff</item> </style> <style name="myTheme"> <item name="android:background">#ff0000</item> </style> </resources> activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:text="@string/hello_world" style="@style/jiangnanstyle" /> <TextView android:text="@string/hello_world" style="@style/pangzhi" /> <TextView android:text="@string/hello_world" style="@style/pangzhi.lizhi" /> <!-- lizhi继承pangzhi --> <TextView android:text="@string/hello_world" style="@style/jiangnanstyle" /> <TextView android:text="@string/hello_world" style="@style/jiangnanstyle" /> </LinearLayout> 国际化是通过系统选择不同的国家后再加载不同的语言和图片。 本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4957881.html,如需转载请自行联系原作者

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

Android SpannableString(显示多样式文本)

SpannableString与String相似,是一种字符串类型,TextView可以直接设置Spannable为显示文本,不相同的是,SpannableString可以使用setSpan方法实现字符串各种形式风格的显示,并且可以设置指定的区间。 setSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,what表示设置的格式是什么,可以是前景色、背景色也可以是可点击的文本等等(URLSpan、ClickableSpan、BackgroundColorSpan、ForegroundColorSpan、MaskFilterSpan、AbsoluteSizeSpan、RelativeSizeSpan、ImageSpan、ScaleXSpan、StyleSpan、SubscriptSpan、SuperscriptSpan、TextAppearanceSpan、TypefaceSpan、RasterizerSpan、StrikethroughSpan、UnderlineSpan)。MaskFilterSpan可以实现模糊和浮雕效果,RasterizerSpan可以实现光栅效果。start表示需要设置格式的子字符串的起始下标,同理end表示终了下标,flags属性就有意思了,共有四种属性: Spanned.SPAN_INCLUSIVE_INCLUSIVE:前后都包括 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE:前后都不包括 Spanned.SPAN_INCLUSIVE_EXCLUSIVE:前面包括,后面不包括 Spanned.SPAN_EXCLUSIVE_INCLUSIVE:前面不包括,后面包括 SpannableStringBuilder实现对SpannableString的一个拼接效果,append()方法可以实现各种风格效果的SpannableString拼接,非常实用。 实例代码 activity.xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_marginTop="10dp" tools:context="com.mazaiting.spannablestring.MainActivity" > <TextView android:id="@+id/textView" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:onClick="foreGroundColor" android:text="前景色" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="backGroundColor" android:text="背景色" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="relativeSize" android:text="字体大小" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="strikeThrough" android:text="删除线" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:onClick="underLine" android:text="下划线" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="superScript" android:text="上标" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="subScript" android:text="下标" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="styleSpan" android:text="粗体斜体" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:onClick="imageSpan" android:text="图片" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="click" android:text="点击" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="urlSpan" android:text="URL" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="styleSpan" android:text="粗体斜体" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout> MainActivity.java代码 package com.mazaiting.spannablestring; import android.content.Intent; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; import android.text.TextPaint; import android.text.method.LinkMovementMethod; import android.text.style.BackgroundColorSpan; import android.text.style.ClickableSpan; import android.text.style.ForegroundColorSpan; import android.text.style.ImageSpan; import android.text.style.RelativeSizeSpan; import android.text.style.StrikethroughSpan; import android.text.style.StyleSpan; import android.text.style.SubscriptSpan; import android.text.style.SuperscriptSpan; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; import android.util.TypedValue; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) this.findViewById(R.id.textView); } /** * 设置前景色 */ public void foreGroundColor(View view){ SpannableString spannableString = new SpannableString("设置文字的前景色为淡蓝色"); ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE")); spannableString.setSpan(foregroundColorSpan, 9, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置背景色 */ public void backGroundColor(View view){ SpannableString spannableString = new SpannableString("设置文字的背景色为浅绿色"); BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(Color.parseColor("#AC00FF30")); spannableString.setSpan(backgroundColorSpan, 9, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置文字大小 */ public void relativeSize(View view){ SpannableString spannableString = new SpannableString("万丈高楼平地起"); RelativeSizeSpan relativeSizeSpan1 = new RelativeSizeSpan(1.2f); RelativeSizeSpan relativeSizeSpan2 = new RelativeSizeSpan(1.4f); RelativeSizeSpan relativeSizeSpan3 = new RelativeSizeSpan(1.6f); RelativeSizeSpan relativeSizeSpan4 = new RelativeSizeSpan(1.8f); RelativeSizeSpan relativeSizeSpan5 = new RelativeSizeSpan(1.6f); RelativeSizeSpan relativeSizeSpan6 = new RelativeSizeSpan(1.4f); RelativeSizeSpan relativeSizeSpan7 = new RelativeSizeSpan(1.2f); spannableString.setSpan(relativeSizeSpan1, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(relativeSizeSpan2, 1, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(relativeSizeSpan3, 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(relativeSizeSpan4, 3, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(relativeSizeSpan5, 4, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(relativeSizeSpan6, 5, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(relativeSizeSpan7, 6, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } /** * 设置删除线 */ public void strikeThrough(View view){ SpannableString spannableString = new SpannableString("为文字设置删除线"); StrikethroughSpan strikethroughSpan = new StrikethroughSpan(); spannableString.setSpan(strikethroughSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置下划线 */ public void underLine(View view){ SpannableString spannableString = new SpannableString("为文字设置下划线"); UnderlineSpan underlineSpan = new UnderlineSpan(); spannableString.setSpan(underlineSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置上标 */ public void superScript(View view){ SpannableString spannableString = new SpannableString("为文字设置上标"); SuperscriptSpan superscriptSpan = new SuperscriptSpan(); spannableString.setSpan(superscriptSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置下标 */ public void subScript(View view){ SpannableString spannableString = new SpannableString("为文字设置下标"); SubscriptSpan subscriptSpan = new SubscriptSpan(); spannableString.setSpan(subscriptSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置粗体斜体 */ public void styleSpan(View view){ SpannableString spannableString = new SpannableString("为文字设置粗体、斜体风格"); StyleSpan styleSpan_B = new StyleSpan(Typeface.BOLD); StyleSpan styleSpan_I = new StyleSpan(Typeface.ITALIC); spannableString.setSpan(styleSpan_B, 5, 7, Spanned.SPAN_INCLUSIVE_INCLUSIVE); spannableString.setSpan(styleSpan_I, 8, 10, Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(spannableString); } /** * 设置图片 */ public void imageSpan(View view){ SpannableString spannableString = new SpannableString("在文本中添加表情(表情)"); Drawable drawable = getResources().getDrawable(R.mipmap.emotion); drawable.setBounds(0, 0, 42, 42); ImageSpan imageSpan = new ImageSpan(drawable); spannableString.setSpan(imageSpan, 6, 8, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } /** * 点击开启新界面 */ public void click(View view){ SpannableString spannableString = new SpannableString("为文字设置点击事件"); MyClickableSpan clickableSpan = new MyClickableSpan("http://www.jianshu.com/"); spannableString.setSpan(clickableSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); // 使用ClickableSpan的文本如果想真正实现点击作用, // 必须为TextView设置setMovementMethod方法,否则没有点击相应, // 至于setHighlightColor方法则是控制点击是的背景色。 textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setHighlightColor(Color.parseColor("#36969696")); textView.setText(spannableString); } class MyClickableSpan extends ClickableSpan { private String content; public MyClickableSpan(String content) { this.content = content; } @Override public void updateDrawState(TextPaint ds) { ds.setUnderlineText(false); } @Override public void onClick(View widget) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); Bundle bundle = new Bundle(); bundle.putString("content", content); intent.putExtras(bundle); startActivity(intent); } } /** * 网络链接 */ public void urlSpan(View view) { SpannableString spannableString = new SpannableString("为文字设置超链接"); URLSpan urlSpan = new URLSpan("http://www.jianshu.com/"); spannableString.setSpan(urlSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setHighlightColor(Color.parseColor("#36969696")); textView.setText(spannableString); } } 注: 文章中涉及到的Activity即一个空的Activity, 读者可以可以新建一个空界面即可。

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

7.4. css 冗余/废弃样式检查

https://code.google.com/archive/p/css-redundancy-checker/ wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/css-redundancy-checker/source-archive.zip unzip source-archive.zip gem install hpricot ruby css-redundancy-checker.rb [cssfile] [directory of html files OR .txt file listing urls to use] # vim url.txt http://www.netkiller.cn/zh-cn/ http://www.netkiller.cn/index.html http://www.netkiller.cn/zh-tw/index.html ruby css-redundancy-checker.rb your.css url.txt 原文出处:Netkiller 系列 手札 本文作者:陈景峯 转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

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

Android Navigation Drawer样式抽屉的使用

NavigationDrawer(导航抽屉)是一个从屏幕的左边缘过渡并且显示app的主要导航操作的面板。 显示Navigation Drawer 用户能够从屏幕左边缘滑动滑块或者点击app的ActionBar上的图标调使Navigation Drawer显示到屏幕。 作为NavigationDrawer的扩展,它覆盖主内容除了ActionBar。当导航抽屉被完全的展开时,ActionBar通过替换当前带有app名字的ActionBar和移除全部的由导航抽屉支配的视图有前后关系的行为。带有Setting和Help操作的标准操作项的溢出菜单是仍然显示。 因为它们是短暂的,所以导航抽屉使视图减少混乱。你也可以使用它们在导航等级中较低的等级,允许使用者能够从app的任何地方都能够转换到其他重要的页面。 在App的任何位置,从屏幕左边滑动,就可打开NavigationDrawer 隐藏NavigationDrawer 当导航抽屉是被展开时,用户可以隐藏它通过四种方法: 触摸NavigationDrawer以外的内容 在屏幕上的任何地方向左滑动(包括点击屏幕右边缘) 点击app中ActionBar的图标或者标题 点击后退键 什么时候使用导航抽屉 导航抽屉并不是一般意义上顶层导航菜单(spinners)或者导航标签(tabs)的替换,你的app应用结构应当指引你对顶层转换使用哪种模式。更多关于顶层转换机制信息,请查看应用结构设计模式。 这里有一些导航抽屉在一些地方应用较好的例子: 顶层菜单视图超过三个 导航抽屉能很好的处理同时放置很多导航视图(targets)的情况,如果你有超过3个顶层视图的话,使用导航抽屉是很合适的,如果你不想使用导航抽屉,也可以使用固定的导航标签来简化顶层菜单的展示以及交互。 低层视图交叉导航 如果你的app应用需要在非顶层视图界面间交叉导航,考虑使用导航抽屉。因为它的内容可以来源于应用程序的任何地方,导航抽屉能够有效地让你的页面从非顶层界面跳转到应用程序中其它重要的地方。 导航抽屉使得非顶层页面间的交叉导航变得可能 深层导航分支 如果你有更深层的导航分支,使用返回键重新导航到应用程序的顶层页面就变得重复而且麻烦。正因为导航抽屉的内容可以来源于应用程序的任何地方,导航到顶层页面变得更快,效率更高。 navigation drawer允许快速跳转到应用程序的顶级页面,而无需按重复返回。 导航中心 在你的程序结构当中,导航抽屉是一个映像,主要用于展示你的导航中心。考虑导航中心这些方面,使用者会经常通过它跳到这个程序的另外一个部分。最起码而言,导航中心是最高级的视图,它适合你的程序的最主要的功能。 如果你的程序结构比较深,你添加的视图须从较低的水平深度,这样你的使用者将会经常性的使用你的导航中心。 你的所有导航抽屉都包含在你程序的导航中心。高分辨率的屏幕和低分辨率的都一样重要。 适合在导航中心使用导航抽屉的位置是,所有的屏幕在你的导航抽屉应该一个一致入口,显示导航抽屉指示程序图标应该在动作条当中。触发图标可以让导航抽屉从左边滑出。所有其他的低分辨屏幕显示了传统的程序图标,抽屉仍是侧滑,但不是特色在动作条当中。 抽屉式导航的内容 注意抽屉式导航的内容主要在于应用程序的导航。你的导航中心内容是应用程序成列表一样呈现在抽屉式导航里---每行是一项。 标题,图标和序号 你可以通过添加标题来组织你的导航结构。你的标题不是相互联系的,仅仅只是用来将目标转入所属的功能模块。如果你有很多需要导航的目标,在抽屉里使用标题来为用户定位。 导航目标可以使用有明显特征的图标及序号。使用序号去提醒用户在相应视图内数据的状态改变。 使用标题和图标去组织你的抽屉 折叠式的导航项 如果你有许多从属于其他项的视图,考虑将它们分到一个可扩展的项中,以便于节省空间。然后在抽屉式导航里的父项可以分成一个分项。左边允许父项视图的导航,右边呈现出子项的列表。 在运行的时候,呈现给你的是一个分项的最初状态。而我们规定,所有顶端视图在抽屉式导航里都是可见的。如果你有很多可折叠项,考虑将所有项折叠到用户可以看到的顶级视图中。 当用户打开抽屉里的一个顶级视图时,给相应的顶级视图分配一个足够的空间,并在顶端显示用户在应用程序中的当前位置。 可折叠项是分开的。左侧是导航,右侧是分离出来的项 Navigation Drawers 和 Action Bars 当用户展开的导航抽屉,任务焦点切换到从抽屉中选择一个项目。因为抽屉不会覆盖操作栏中,用户可能没有意识到,在操作栏项目不涉及到导航抽屉。 为了减少混乱,调整以下操作栏的内容,一旦完全展开的抽屉: ·应用程序图标 ·应用程序名称 ·删除操作栏中的行动基础的视图(如创建新的“,”刷新“)是上下文。您可能会保留与全球范围内的行动,如“搜索”。 ·溢出与预期的导航目标,如设置和帮助菜单。 清理抽屉时,操作栏完全展开。删除不需要的行动,并在标题区中显示您的应用程序的名称 操作 请勿将行动在导航抽屉。操作属于在操作栏中,用户希望看到他们。请记住,不是所有的应用程序使用的导航抽屉模式。它可能是很有诱惑力的,露出你的应用程序的所有功能,在同一个地方,但在心中保持大局观。将你的行动,所有的应用程序,显示它们。 这也适用于通用的导航目标,如获得帮助,或应用程序的设置。每款指南惯例帮助和设置始终位于行动溢出。 上下文操作栏 有时用户会在上下文操作栏(CAB)的状态下出现,而不是应用程序的行动吧。这通常发生在用户选择的文本或选择多个项目后,按下并保持姿态。虽然CAB是可见的,你仍然应该允许用户打开该导航抽屉采用边缘轻扫。然而,取代CAB标准动作栏,而导航打开抽屉。当用户关闭抽屉,重新显示CAB。 隐藏上下文操作栏,而抽屉可见。 如果用户浏览远离之前选定的内容,取消选择的内容之前,导航到新的视图。 风格 导航抽屉的宽度取决于你想展示的内容。但是应该在240dp至320dp之间。每一个列表的高度不应该超过48dp.布局应该根据建议的指导方针以确定边缘和空间。 导航抽屉的布局指导 挑选抽屉的背景最好和你的程序主题相匹配。完整的高亮主题和完整的暗色的主题抽屉。 本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/1254472,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Spring

Spring

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

Sublime Text

Sublime Text

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

用户登录
用户注册