![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android View效果和功能
文章平均质量分 80
Loong.xu
青春的诀别是不是意味着年迈的将近;其实,青春,她一直都在继续.
展开
-
如何将Android源码导入AS
关于阅读源码,本号之前推送过一篇非常详尽的文章教大家如何方便的阅读framework源码: grepcode都无法访问了,如何更好的阅读源码 大致为在线查看:http://androidxref.com/https://www.androidos.net.cn/sourcecode替换adk中android.jar直接在as中查看:https...转载 2019-04-18 16:14:08 · 2053 阅读 · 0 评论 -
Fragment的原理和优化
fragment 管理框架升级到了 0.1.0, 添加了一个新的接口 startFragmentAndDestroyCurrent, 可以方便的完成类似 startActivity 之后 finish 的效果FragmentTransition#addToBackStack 的误用之前也有人在 issue 中问道如何实现类似 Activity#finish() 的效果,我不加思索的回答到...原创 2018-08-16 19:06:26 · 982 阅读 · 0 评论 -
Android资源访问机制
Android资源访问机制—获取Resources对象:https://blog.csdn.net/Hknock/article/details/48003071Android 运行时资源替换(RRO机制)----Runtime Resource Overlay:https://blog.csdn.net/azhengye/article/details/49050631Android ...原创 2018-07-24 20:04:54 · 754 阅读 · 0 评论 -
Android系统Download模块
一、Download模块简介##首先,Android Download模块主要由两个部分构成:DownloadManager以及DownloadProvider。 DownloadManager:在Android L/M源码位置:frameworks/base/core/java/android/app/DownloadManager.java作用:提供接口供三方apk调用DownloadMan...原创 2018-05-23 15:20:22 · 2768 阅读 · 0 评论 -
Android ViewConfiguration配置说明
简介android.view.ViewConfiguration 包含了一些方法和常量,用于设置UI的超时、大小、距离 属性常量都是私有的,通过对应的get方法,获取配置值。对应的v4兼容类:android.support.v4.view.ViewConfigurationCompat初始化通过静态方法:ViewConfiguration static get(Context context);1...原创 2018-05-22 15:34:17 · 3264 阅读 · 0 评论 -
ViewPager,ScrollView 嵌套ViewPager滑动冲突解决(View的 事件分发机制)
这篇博客主要讲解一下几个问题粗略地介绍一下View的事件分发机制解决事件滑动冲突的思路及方法ScrollView 里面嵌套ViewPager导致的滑动冲突ViewPager里面嵌套ViewPager 导致的滑动冲突轮播图的几种实现方式文章首发地址CSDN:http://blog.csdn.net/gdutxiaoxu/article/details/52939127先看一下效果图ScrollVie...转载 2018-05-22 10:49:49 · 5106 阅读 · 0 评论 -
Android弹幕DanmakuFlameMaster源码解析
最近项目中需要添加弹幕功能,就用了B站的开源框架DanmakuFlameMaster。用法比较简单,创建一个Parser添加数据源,prepare然后start就可以了。然而会用并不够,由于比较好奇弹幕是怎么动起来的,就着重看了下这一部分的代码。至于缓存以及其他的源码暂时并没有研究。先从prepare开始看 @Override public void prepare(BaseDanma...转载 2018-05-14 17:34:17 · 1805 阅读 · 0 评论 -
android view绘制源码分析
在开发过程中我们经常要进行view的自定义。如果熟练掌握自定义技巧的话就能做出很多控件出来。这篇文章来讲讲view绘制背后发生的那些事。一、view的基础知识1.view的绘制概括首先先说说view绘制的整体过程。View绘制的源码分析 ,它的三大流程都是在ViewRootImpl中完成的,从ViewRootImpl中的performTraversals开始,有三个方法pe原创 2016-09-10 18:00:12 · 721 阅读 · 0 评论 -
canvas的translate、scale、rotate、clipRect等方法
1.translate(x,y):平移,将画布的坐标原点向左右方向移动x,向上下方向移动y.canvas的默认位置是在(0,0). 例子:画布原点假如落在(1,1),那么translate(10,10)就是在原点(1,1)基础上分别在x轴、y轴移动10,则原点变为(11,11)。2.scale(x,y):扩大。x为水平方向的放大倍数,y为竖直方向的放大倍数。3.ro转载 2015-09-19 19:09:18 · 1355 阅读 · 0 评论 -
Android View绘制过程
Android的View绘制是从根节点(Activity是DecorView)开始,他是一个自上而下的过程。View的绘制经历三个过程:Measure、Layout、Draw。基本流程如下图:performTraversals函数,具体的可以参考一下源代码:[java] view plaincopyprint?转载 2015-09-06 17:11:56 · 831 阅读 · 0 评论 -
Android中滑屏实现----如何实现触摸滑屏以及Scroller类详解
前言: 虽然本文标题的有点标题党的感觉,但无论如何,通过这篇文章的学习以及你自己的实践认知,写个简单的滑屏小 Demo还是just so so的。 友情提示: 在继续往下面读之前,希望您对以下知识点有一定程度掌握,否则,继续看下去对您意义也不大。 1、掌握View(视图)转载 2013-11-18 14:52:01 · 1512 阅读 · 0 评论 -
Android ContentProvider原理分析
目录ContentProvider概述 类图 时序图 源码解析 installProvider ContentResolver中的CURD acquireProvider 到AMS获取ContentProvider publishContentProvider removeDyingProvider 总结1. ContentProvider概述...翻译 2020-03-23 14:51:15 · 1290 阅读 · 0 评论 -
Android 控件 RecyclerView
结论 在一些场景下,如界面初始化,滑动等,ListView和RecyclerView都能很好地工作,两者并没有很大的差异: 数据源频繁更新的场景,如弹幕:http://www.jianshu.com/p/2232a63442d6等RecyclerView的优势会非常明显; 进一步来讲,结论是:列表页展示界面,需要支持动画,或者频繁更新,局部刷新,建议使用RecyclerView...原创 2018-08-27 18:01:03 · 274 阅读 · 0 评论 -
ListView分页显示
出在:http://blog.csdn.net/tu_bingbing/article/details/13275107 当ListView要显示的数据过多时,为了更快的响应用户,这个时候ListView进行分页显示再合适不过了。 ListView分页显示数据的原理其实很简单,当用户滑到ListView最后一项时,通知异步线程进行加载下一页的数据,下一页数据加转载 2014-03-24 13:43:40 · 8507 阅读 · 1 评论 -
Android BaseAdapter详解(实现了SimpleAdapter,ListAdapter的接口)
在学习android的时候大体都经历了SimpleAdapter->BaseAdapter的过程。对于一般应用,到BaseAdapter也就够了。BaseAdapter实现了SimpleAdapter,ListAdapter的接口,给开发者提供了一些不常用方法的默认实现。而android还提供了更多的功能要靠ListAdapter接口使用。ListView只是重用view来展示数据。1.原创 2013-11-25 16:23:41 · 17448 阅读 · 3 评论 -
Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)
一、什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的Activity时这个转载 2013-11-19 10:03:38 · 1445 阅读 · 0 评论 -
Android ViewPager使用详解
根据本文章,本人也在开心网项目使用viewpager加入引导功能。这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是PagerAdapter。看一下api的图片,转载 2013-11-14 14:03:51 · 1476 阅读 · 0 评论 -
Android TextView和EditText属性详解
autoLink 设置 是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all) android:autoText如果设置,将 自动 执行输入值的拼写纠正。此处无 效果 ,在显示输入法并输入的时候起作用。 android:bufferType指定g原创 2013-11-14 11:33:23 · 7246 阅读 · 0 评论 -
收藏的Android非常好用的组件或者框架
收藏的Android非常好用的组件或者框架。android框架 先说两个网站: http://www.androidviews.net/ 很好的国外开源代码站,就是访问速度有点慢啊http://www.23code.com 挺不错的国人开源站,几乎每天都有更新http://www.theultimateandroidlibrary.com/ 以前可以访问的,好像现在不行了原创 2013-11-11 16:13:06 · 2803 阅读 · 0 评论 -
Android Fragments 详细使用
Fragments 诞生初衷 自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片、片段。其上的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments 。fragments 的设计不需要你来亲自管理view转载 2013-10-09 19:54:27 · 1488 阅读 · 0 评论 -
Android Application对象必须掌握的七点
1:Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 App转载 2013-10-09 14:52:11 · 1327 阅读 · 0 评论 -
Android GridView属性集合
GridView的一些特殊属性:1.android:numColumns=”auto_fit” //GridView的列数设置为自动2.android:columnWidth=”90dp " //每列的宽度,也就是Item的宽度3.android:stretchMode=”columnWidth"//缩放与列宽大小同步4.android:ve转载 2013-10-08 19:56:43 · 3335 阅读 · 1 评论 -
Android UI开发第十七篇——Android Fragment实例(ListFragment)
Fragment是Android honeycomb 3.0新增的概念,在Android——Fragment介绍、Android Fragment使用、Android FragmentManage FragmentTransaction介绍中做了关于Fragment的详细介绍。这一片主要通过一个实例了解Fragment的使用。 先看下实例效果图:转载 2013-10-05 10:16:42 · 38026 阅读 · 2 评论 -
Android FragmentManage FragmentTransaction介绍
FragmentManage:FragmentManager能够实现管理activity中fragment. 通过调用activity的getFragmentManager()取得它的实例.FragmentManager可以做如下一些事情:1、使用findFragmentById() (用于在activity layout中提供一个UI的fragment)或findFrag转载 2013-10-03 21:24:57 · 1384 阅读 · 0 评论 -
Android 获取view在屏幕中的位置
getLocalVisibleRect , 返回一个填充的Rect对象, 感觉是这个View的Rect大小,left,top取到的都是0getGlobalVisibleRect , 获取全局坐标系的一个视图区域, 返回一个填充的Rect对象;该Rect是基于总整个屏幕的getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,原创 2013-09-22 11:18:48 · 1517 阅读 · 0 评论 -
Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明
Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失。信息可以是简单的文本,也可以是复杂的图片及其他内容(显示一个view)。 1.简单用法Toast.makeText(midlet.getApplicationContext(), "用户名不能为空", Toast.LENGTH_LONG).show转载 2013-09-18 10:37:52 · 3315 阅读 · 1 评论 -
自定义seekbar中,thumb被覆盖掉一部分问题
(图一) (图二) (图三) 做一个自定义的seekbar,更改其背景图片:[java] view plaincopy android:id="@+id/focus_seekbar" android:layout_width="w转载 2013-09-17 20:20:09 · 1646 阅读 · 0 评论 -
Android五大布局
Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。Android的五大布局分别是LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局)和TableLayout(表格布局)。 Linear原创 2013-08-26 17:38:32 · 1095 阅读 · 0 评论 -
android RelativeLayout(相对布局)详细说明
[html] view plaincopyRelativeLayout(相对布局) 时间:2012-02-08 19:32来源:SJF0115 作者:android安卓 点击: 263 次 android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 and转载 2013-07-22 17:59:07 · 1470 阅读 · 0 评论 -
动态的获取和设置ImageView的宽度和高度
package com.pic;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.ViewGroup.LayoutParams;import android.widget.ImageView;public class PicTest ext原创 2013-07-17 17:56:15 · 49677 阅读 · 2 评论 -
android 代码获取布局和组件的宽高
获取布局的宽高不能直接用getWidth()或者getHeight直接获取,例如:public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll_viewArea = (LinearLayout) findViewById(原创 2013-07-17 09:33:16 · 9620 阅读 · 0 评论 -
Android中获取应用程序(包)的信息(launcher获取系统应用)
Android中获取应用程序(包)的信息-----PackageManager的使用(一) 转载请注明出处:http://blog.csdn.net/qinjuning 本节内容是如何获取Android系统中应用程序的信息,主要包转载 2013-07-15 10:54:14 · 7755 阅读 · 0 评论 -
android ScrollView实现上拉、下拉更新
项目中需要实现对listView的上拉加载更多的功能,忙了一上午也没搞定,从网上看到一篇文章实现了listView的下拉功能,在参照着改的过程中,实现了另一种形式的上拉、下拉更新,参照文章http://hi.baidu.com/czqaiyss/blog/item/3ac75ddf9a9882becc1166d1.html本例demo下载链接:http://download.csdn.ne转载 2013-06-27 21:21:30 · 3622 阅读 · 0 评论 -
listview滑动最后终止,没有执行onScrollStateChanged方法,最后停在onScroll,为什么啊
本人出自:http://www.myexception.cn/android/558502.htmllistview滑动最后停止,没有执行onScrollStateChanged方法,最后停在onScroll,为什么啊?场景是这样的:滑动列表快到最底部时,松开触摸,列表会继续滑到最底部,最后停止的时候,没有执行onScrollStateChanged方法,最后停在onScroll这个方法。转载 2013-06-20 11:29:38 · 5216 阅读 · 2 评论 -
android ListView滚动条监听判断滚动到底部还是顶部
代码:lv.setOnScrollListener(new OnScrollListener() { public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { // 当不滚动时 case OnScrollListener.SCROLL_STA原创 2013-06-20 09:56:08 · 30167 阅读 · 0 评论 -
用动态BroadcastReceiver传参跳转Activity
Hdpfans2.5.1:DetailsActivity.java:注册BroadcastReceiver接受端: //定义 BroadcastReceiver监听 private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceiv原创 2013-06-13 18:16:18 · 6346 阅读 · 0 评论 -
Android代码实现APK文件的安装与卸载
安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory() + str; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new Fi原创 2013-06-08 13:50:08 · 785 阅读 · 0 评论 -
android:属性 layout_alignParentRight android:paddingRight layout_centerInParent(父类)
如果想要在代码中设置 android:layout_centerInParent属性,则可以在代码中这样写:layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);android:layout_alignParentRight="true" 使当前控件的右端和父控件的右端对齐。这里属性值只能为true或原创 2013-06-08 11:03:24 · 7076 阅读 · 0 评论 -
Android 文件存放路径和读取方式
getExternalFilesDir();Environment.getExternalStorageState()对于应用携带的静态数据,可以放置在应用的assets目录或者res,raw目录下。对于assets目录下的静态数据,存在当文件最大支持1MB的局限,读取方式如下:InputStream is = getAssets().open("xxx.xx");原创 2013-06-04 09:57:50 · 41181 阅读 · 2 评论 -
android 获取设备IP和Mac地址
获取Mac地址:public String getLocalMacAddress() { String Mac=null; try{ String path="sys/class/net/wlan0/address"; if((new File(path)).exists()) { FileInputStream fis = new Fil原创 2013-06-03 16:01:33 · 6832 阅读 · 0 评论