自定义view

Android RecyclerView 使用完全解析 体验艺术般的控件

我的未来我决定 提交于 2019-12-05 16:32:40
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45059587 ; 本文出自: 【张鸿洋的博客】 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView、GridView。 那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。 你想要控制其显示的方式,请通过布局管理器LayoutManager 你想要控制Item间的间隔(可绘制),请通过ItemDecoration 你想要控制Item增删的动画,请通过ItemAnimator 你想要控制点击、长按事件,请自己写(擦,这点尼玛。) 基本使用 鉴于我们对于ListView的使用特别的熟悉,对比下RecyclerView的使用代码: mRecyclerView = findView(R.id.id_recyclerview);/

[Android] Android Canvas绘图详解(图文)

时光总嘲笑我的痴心妄想 提交于 2019-12-05 14:49:38
摘要 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。 大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。 大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等。以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果

Android之Adapter用法总结

我与影子孤独终老i 提交于 2019-12-05 13:12:45
Android 之 Adapter 用法总结 1. 概念 Adapter 是连接后端数据和前端显示的适配器接口,是数据和 UI ( View )之间一个重要的纽带。在常见的 View(List View,Grid View) 等地方都需要用到 Adapter 。如下图直观的表达了 Data 、 Adapter 、 View 三者的关系: Android 中所有的 Adapter 一览: 由图可以看到在 Android 中与 Adapter 有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 Base Adapter , Impleader , Adapter , Counteradaptation 等。 BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性; ArrayAdapter支持泛型操作, 最为简单,只能展示一行字。 SimpleAdapter有最好的扩充性,可以自定义出各种效果。 SimpleCursorAdapter 可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为是 SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。 2.应用案例 1)

android学习摘记——自定义Adapter的心得

江枫思渺然 提交于 2019-12-05 13:12:17
在ListView,GridView。。。。中经常用到适配器Adapter,但是anroid 提供的Adapter只是几种框架,如果我们有需求,还是要自己根据需求而自定义Adapter的 android提供的三种Adapter主要有ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,ArraAdapter是简单的字符串适配器(很丑,因为没办法帅。。。),SimpleAdapter是可以自定义子View布局的,可以有图片(只限于本地图片,如果要用网络加载图片,请参考我之前的一篇Blog),SimpleCursorAdapter主要用于数据库,前两个的数据来源一般都是String[]或者List,后一个的数据来源一般是数据库查询得到的Cursor 而我们自定义用的最多的还是继承自SimpleAdapter,下面说一下具体用法 我还是连着上一篇Blog,想做一个显示带下载进度条的子View显示于ListView中,SimpleAdapter可以显示一般的图片,但是无法显示进度条(因为不只是要显示,还要有实时更新),所以我们的做法是继承SimpleAdapter,具体要复写的方法有4个: public int getCount() public Object getItem(int position) public long getItemId

Android中ListView分类

寵の児 提交于 2019-12-05 13:10:03
1. 引言 在Android开发过程中往往有这样的需求,将ListView中的内容按年,月,日进行分类显示,要实现这样的效果我们可能有很多种方法, 如:多ListView拼合,自定义ListView组件等,下面介绍一种比较简单,而且实现结构清晰的实现方式,效果图及实现如下。 2. 效果图 3. 功能实现 (1) 主布局(main.xml)实现: [java] view plain copy <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:orientation = "vertical" android:layout_width = "fill_parent" android:layout_height = "fill_parent" > <ListView android:id = "@+id/categoryList" android:layout_width = "fill_parent" android:layout_height = "fill_parent" /> </LinearLayout> (2) 主Activity实现: [java] view plain copy

Android Style和自定义属性

佐手、 提交于 2019-12-05 12:39:35
文章目录 1. Android Style & Theme 1.1 基本概念 1.1.1 Style(样式) 1.1.2 Theme(主题) 1.2 创建和应用style 1.3 扩展和自定义style 1.4 创建和应用theme 1.5 扩展和自定义theme 1.6 添加指定版本的style 1.7 Style层级 1.7.1 TextAppearance 2 Android 自定义属性 2.1 创建自定义属性步骤 2.2 AttributeSet 2.3 TypedArray 2.4 declare-styleable 2.5 obtainStyledAttributes 2.5.1 obtainAttributes(AttributeSet set, int[] attrs) 2.5.2 obtainStyledAttributes(int[] attrs) 2.5.3 obtainStyledAttributes(int resId,int[] attrs) 2.5.4 obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) 3 几种赋值属性方法 3.1 将单个属性直接应用于view 3.2 将一个style应用于view 3.3

Android自定义控件View的探讨

前提是你 提交于 2019-12-05 07:15:06
本文转载自:http://www.apkbus.com/forum.php?mod=viewthread&tid=242501&extra=page%3D1 做过了一段时间的安卓开发都会接触到自定义控件,那么对于自定义控件大家都有什么样的看法呢?自定义控件他的优势是明显的,设计他的思想又有哪些呢?会用到什么模式呢?希望大家看了这个文章之后,可以发表自己对于自定义控件的看法和思想,这个帖就是为了跟大家交流而发。下面是我自己的一些看法,大侠们请指导!!! 自定义View: 在这里我们先来了解自定义控件view所需要的一些基础知识,以及常见做法。 自定义View类的构造方法 创建自定义控件的3种主要实现方式: 1)继承已有的控件来实现自定义控件 主要是当要实现的控件和已有的控件在很多方面比较类似, 通过对已有控件的扩展来满足要求。 2)通过继承一个布局文件实现自定义控件 一般来说做组合控件时可以通过这个方式来实现。 注意此时不用onDraw方法,在构造函数中通过inflater加载自定义控件的布局文件,再addView(view),自定义控件的图形界面就加载进来了。 例如: 假设我已经有了一个布局的XML文件,里面有一个textview和一个imageview,那么在自定义view的构造方法里这样写就可以使用刚刚的布局XML啦。 public MyView(Context context

ListView通过CursorAdapter显示数据库内容

被刻印的时光 ゝ 提交于 2019-12-05 06:52:19
继续上一个例子,结合ListView中对SQLite进行操作。 通过CursorAdapter在ListView中的数据呈现 在上一个例子中,我们可以对SQLite中的数据库进行增删改查,将数据读到游标Cursor中,然后一一读出。在Android中可以通过CursorAdapter直接将数据映射到ListView中,如下处理: public class Chapter22Test1 extends ListActivity{ private SQLiteDatabase db = null; private Cursor cursor = null; private SimpleCursorAdapter adapter = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); db= (new Chapter22Db (getApplicationContext())).getWritableDatabase(); cursor =db.rawQuery("SELECT _id,Name,Weight from mytable ORDER BY Weight", null); //layout/chapter_22_test1

续:自定义适配器实现Grid View和Gallery碰到到问题。

走远了吗. 提交于 2019-12-05 06:27:14
通过(析: 自定义适配器实现Grid View和Gallery碰到到问题。 )的努力:终于可以让应用程序在模拟器上面正常运行起来。 现在就有些贪心了,想让这个应用能在我的宝贝android手机上运行! 按照: http://wenku.baidu.com/view/7182d5186bd97f192279e98a.html 的操作方法release我的APK。 放到手机安装运行,问题出现了,同样也是异常结束! 现在怎么办啊!手机不能看log. 1.开始搭建手机debug的环境; 2.尝试debug; 问题1. 驱动程序安装完毕之后,你可以尝试在命令行使用「adb devices」来查看是否真的被识别到了你所安装的设备。 3. 在想调试(Debug)的项目的 AndroidManifest.xml 中,添加Debug为True。 ※每个需要调试的项目都必须如此设定。 3-1. 在Eclipse的Package Explorer 中,找到 AndroidManifest.xml 。 3-2. 在编辑器中,选择Application,按照下图所示,设置Debuggable 的值为 true。 3-3. 当然,如果你可以直接手工添加「android:debuggable="true"」至「<application ~ >」内。 解决了 ???????????? no permissions

小程序自定义headed 头部

偶尔善良 提交于 2019-12-04 19:51:33
<!-- 组件 custom-component.wxml --> <view class='flex commonHead top' style='color:{{navbarBg.topColor == "#ffffff"?"#000000":"#ffffff"}};background-color:{{navbarBg.topColor}};height:{{commonHeadHeight.titleHeight}}px;'> <view class='commonHead-wrap flex'> <view class='commonHead_left' style="height:{{commonHeadHeight.titleHeight - commonHeadHeight.statusBarHeight}}px;line-height:{{commonHeadHeight.titleHeight - commonHeadHeight.statusBarHeight}}px;"> <text>霸王餐</text> </view> <view class='commonHead_right flex' style="height:{{commonHeadHeight.titleHeight - commonHeadHeight.statusBarHeight}}px;