【Android】
文章平均质量分 67
teletian
任何事情都是在实现的过程中才最有趣!
展开
-
Android Material Design 之 CardView
前言Material Design 推荐使用卡片布局,详情可以参照 https://material.io/guidelines/components/cards.html#简单使用下面我们使用 RecyclerView + CardView 来实现一个简单的 Sample。首先添加相应的依赖implementation 'com.android.support:appcompat-v7:26.0.原创 2017-08-19 18:48:25 · 1862 阅读 · 0 评论 -
Android Material Design 之 Toolbar
前言从 Android 3.0 开始,推出了 ActionBar。但是,随着版本的升级,ActionBar 的行为也发生了变化。从 5.0 开始,ActionBar 提供了 Material Design 的体验。但是想要 5.0 之前的系统也支持 Material Design 怎么办呢?那么就用 Toolbar 吧!Toolbar 在 Support Library 中,所有对应的系统版本都能有原创 2017-07-25 23:09:56 · 957 阅读 · 0 评论 -
Android CheckBox setButtonDrawable(null) 在 4.x 版本中无效
当我们需要只显示 CheckBox 的文字,而不显示按钮的时候,通常在 XML 文件中设置 CheckBox 的 android:button=”@null”。当我们自定义 CheckBox 并希望在代码中控制按钮不显示的时候,可以 setButtonDrawable(null) 来达到效果。但是有一个问题,setButtonDrawable(null) 在 4.x 中是没有效果的,从 5.0 开始原创 2017-07-19 22:08:45 · 1534 阅读 · 0 评论 -
Android Material Design 之 TextInputLayout
TextInputLayout 是 Material Design 风格的输入框。效果如下。EditText 在获取焦点的时候,hint 会作为 title 移动到上面去,这样用户输入的过程中也能看到 hint。TextInputLayout 自带 Error Message,当发生错误的时候,消息显示到线的下方,并且线的颜色也会变掉。EditText 只要用 TextInputLayout 包裹一原创 2017-07-19 22:07:53 · 1053 阅读 · 0 评论 -
Android Google Tag Manager 死锁造成 ANR
项目中用到了 GTM,在 Application 中有 GTM 的初始化操作,如下TagManager tagManager = TagManager.getInstance(context);tagManager.setVerboseLoggingEnabled(true);PendingResult<ContainerHolder> pending = tagManager.lo原创 2017-05-05 17:33:47 · 803 阅读 · 0 评论 -
Android_AlertDialog
AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。使用AlertDialog.Builder创建对话框需要了解以下几个方法:setTitle :为对话框设置标题setIcon :为对话原创 2012-05-04 17:08:14 · 2638 阅读 · 1 评论 -
Android_ActionBar
简介Android3.0之后出现了ActionBar,一种全新的UI设计风格。Android官网为了使开发者更加了解新UI设计风格,也专门给出了一个板块来介绍design的东西,其中也有ActionBar(http://developer.android.com/design/patterns/actionbar.html)。一个简单的ActionBarDemo1、创建原创 2013-10-27 21:39:49 · 24933 阅读 · 6 评论 -
Android_TextView
一、只想让TextView显示一行,但是文字超过TextView的长度怎么办?在开头显示省略号android:singleLine="true"android:ellipsize="start"在结尾显示省略号android:singleLine="true"android:ellipsize="end"在中间显示省略号android:singleL原创 2012-05-12 15:53:13 · 6419 阅读 · 0 评论 -
Android_TextSwitcher和ImageSwitcher
先看看继承关系,ImageSwitcher和TextSwitcher的继承关系是一样的。两个重要的父类:ViewSwitcher和ViewAnimator继承于ViewSwitcher,说明具备了切换功能继承于ViewAnimator,说明具备了动画功能ImageSwitcher原理ImageSwitcher的内容在Gallery中已经有所讲解,这边系统的详解一下原创 2012-05-11 11:31:21 · 9056 阅读 · 5 评论 -
Android_ViewFlipper
前面已经讲过ImageSwitcher和TextSwitcher。ImageSwitcher用来切换ImageView的,TextSwitcher是用来切换TextView的。但是我们现在要切换自定义View怎么办?ImageSwitcher和TextSwitcher已经不能满足我们的需求。ViewFlipper可以在任意View之间切换。下面我们就来讲解它。先看一下结构图原创 2012-05-11 14:55:50 · 3137 阅读 · 3 评论 -
Android_WebView
如果想WebView能够访问网络,必须在AndroidManifest.xml里面添加权限main.xml很简单,就是一个WebView<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" and原创 2012-05-09 15:15:32 · 4544 阅读 · 0 评论 -
Android_PopupWindow
Android的对话框有两种:PopupWindow和AlertDialog。它们的不同点在于:AlertDialog的位置固定,而PopupWindow的位置可以随意AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的PopupWindow的位置按照有无偏移分,可以分为偏移和无偏移两种;按照参照物的不同,可以分为相对于某个控件(Anchor锚)和相对于父控件。具原创 2012-05-15 22:08:39 · 5948 阅读 · 1 评论 -
Android_布局优化
原则尽量多使用LinearLayout和RelativeLayout。在布局层次一样的情况下,建议用LinearLayout,因为LinearLayout性能要高一些。但是用LinearLayout有时会使嵌套层次变多,这样的情况应该用RelativeLayout。尽量用include标签来抽取可复用的布局尽量用ViewStub标签来加载不常用的布局尽量用merge标签来减少层次Relat原创 2015-08-29 20:14:38 · 1285 阅读 · 0 评论 -
Android_Animation
Animation从总体来说可以分为两类:Tweened Animations:该类提供了旋转,移动,伸展,淡入淡出等效果Frame-By-Frame Animations:该类可以创建一个Drawable序列,这些Drawable可以按照指定的事件间隔一个一个显示,和动画片差不多一、Tweened AnimationsTweened Animations也有四种类型:原创 2012-05-15 00:47:13 · 5726 阅读 · 3 评论 -
Android_Notification
原文连接:http://www.oschina.net/question/234345_40111Android手机可以向下拖动状态栏来看通知,发送一个状态栏通知必须用到3个类: NotificationManager → 通知的管理类,负责发通知,清除通知等 Notification → 具体的通知对象Pe转载 2012-05-02 23:46:26 · 1235 阅读 · 0 评论 -
Android_Timer
直接上代码,解释看注释,一个火箭发射倒计时的例子main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" andro原创 2012-05-09 16:50:43 · 1661 阅读 · 1 评论 -
Android_Matrix
说set、pre、post的区别之前,先说说Matrix。Matrix包含一个3 X 3的矩阵,专门用于图像变换匹配。Matrix提供了四种操作:translate(平移)rotate(旋转)scale(缩放)skew(倾斜)也就是说这4种操作都是对这个3 X 3的矩阵设值来达到变换的效果。Matrix没有结构体,它必须被初始化,通过reset或set方法。原创 2012-06-07 16:21:24 · 2238 阅读 · 0 评论 -
Android_FontMetrics
Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。public static class FontMetrics { /** * The maximum distance above the baseline for the tallest glyph in * the font at a given text size.原创 2012-06-07 17:31:56 · 8733 阅读 · 2 评论 -
Android_ListView_有Header或Footer时onItemClick里的position的问题
当ListView有Header或者Footer时,onItemClick方法的position会包含Header和Footer。例如:一个ListView有10个item。如果不加Header和Footer,那么positon会是0~9。如果加了Header和Footer,那么positon就回变成0~10(其中0是header,10是footer)。如果没有意识到这一点,那么很有可能会出现问题。转载 2016-02-20 20:51:07 · 3512 阅读 · 2 评论 -
Android_View的绘制过程
View可以看成一个树形结构,父控件是父节点,子控件是子节点。View的绘制过程就是遍历这棵树。View的绘制有三步:measure:测量View的Width和Height,layout:布局View(left,right,top,bottom),指定View和手机屏幕的上下左右的距离。draw:绘图以上的步骤必须按照顺序来。(顺便说一下,以上三个步骤发生在View的构造方法之后。原创 2012-07-16 21:27:30 · 1092 阅读 · 0 评论 -
Android_多媒体
本文介绍多媒体的音频和视频播放。播放音频和视频的源文件可以是一下三种:源文件(即res/raw下或assets下)文件系统(即sdcard)流媒体(即网络)1. 播放音频文件播放音频文件可以用MediaPlayer类或SoundPool类。下面我们来介绍这两个类。1.1 MediaPlayer从源文件(即res/raw下或assets下)播放音频mM原创 2012-12-17 00:25:44 · 5321 阅读 · 0 评论 -
Android_Activity的4种加载模式
原文链接:http://marshal.easymorse.com/archives/2950在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。加载模式分类及转载 2012-05-16 13:50:37 · 1208 阅读 · 1 评论 -
Android_Broadcast
Broadcast Receiver用于接收并处理广播通知(broadcastannouncements)。多数的广播是系统发起的,如地域变换、电量不足、来电来信等。程序可以有任意数量的Broadcast Receivers来响应它觉得重要的通知。Broadcast Receiver可以通过多种方式通知用户:启动activity、使用NotificationManager、开启背景原创 2012-05-03 11:30:00 · 4829 阅读 · 2 评论 -
Android_selector、shape
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。使用方法:在res文件夹下新建drawable文件夹在drawable下新建XXX.xmlJava代码中:R.drawable.原创 2012-04-24 13:25:14 · 4053 阅读 · 0 评论 -
Android_数据存储_File
使用内部存储Android系统能够直接把文件存在设备的内部存储内。默认情况下,保存在内部存储内的文件是应用程序私有的,其他应用程序(或用户)是无法访问的。当用户卸载此应用程序时,内部存储的数据会一并清除。往内部存储内写文件(写入到/data/data/com.xxx.xxx/files目录下,com.xxx.xxx为应用程序包名): Strin原创 2012-12-07 23:52:01 · 5401 阅读 · 0 评论 -
Android_GPS
Android可以通过多种方式获取用户位置。本文主要将GPS和NETWORK两种方式。先简单的介绍下怎么在Android设备上获取用户位置。// 获取系统位置服务的引用LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // 定原创 2012-12-14 14:27:27 · 9586 阅读 · 0 评论 -
Android_JSON解析
JSON是JavaScript Object Notation的缩写,可见JSON来源于JavaScript。JSON数据是一系列键值对的集合。JSON和XML的比较JSON比XML体积小JSON和JavaScript交互更加方便JSON对数据的描述性没有XML好JSON的速度要远远大于XMLJSON的解析要比XML的解析要方便JSON已经被大多数开发人员所接受,在网络数据的传原创 2012-05-16 01:13:24 · 33053 阅读 · 4 评论 -
Android_Resource/Activity的一些小知识点
setLayoutParamstextView.setLayoutParams(new TextSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));为什么要用TextSwitcher的LayoutParams呢。查一查API,可以看到这么一句话These supply parameters t原创 2013-12-15 22:31:23 · 2258 阅读 · 0 评论 -
关于 Android 中 Bitmap 的 ARGB_8888、ALPHA_8、ARGB_4444、RGB_565 的理解
ARGBA 是 alpha,透明度。 RGB 是 Red、Green、Blue,红色、绿色、蓝色,三种原色。Bitmap.Config 有四种枚举类型ARGB_8888:ARGB 四个通道的值都是 8 位,加起来 32 位,也就是 4 个字节。每个像素点占用 4 个字节的大小。ARGB_4444:ARGB 四个通道的值都是 4 位,加起来 16 位,也就是 2 个字节。每个像素点占用 2 个字原创 2017-05-11 22:36:25 · 4405 阅读 · 0 评论