首页 文章 精选 留言 我的

精选列表

搜索[卡顿],共9806篇文章
优秀的个人博客,低调大师

Android Material Design-Creating Lists and Cards(创建列表和)-(三)

转载请注明出处:http://blog.csdn.net/bbld_/article/details/40430319 翻译自:http://developer.android.com/training/material/lists-cards.html 为了在你的app中用material design风格去创建复杂的列表和卡片(布局界面),你能够使用RecyclerView和CardView控件。 创建列表 该RecyclerView控件是比ListView更先进、灵活的版本号。 这个控件是一个的容器,用于显示有大量数据的view而且在有限制数量的view下可以高效地滚动。 当你有数据集合时,它的元素在用户操作发生改变时或者在网络事件下发生改变时。(这时你就该)使用RecyclerView。 该RecyclerView类通过下面几点简化了显示和处理大量的数据: l 为(管理)位置item的布局管理器 l 为通用的item操作显示的默认动画。比如删除或者添加item 你还能够灵活地自己定义RecyclerView控件的布局管理器和它的动画效果。 图一:RecyclerView控件 要使用RecyclerView控件,你必须指定一个适配器和一个布局管理器。要创建适配器,需继承RecyclerView.Adapter类。继承实现的细节取决于你的数据情况和item上view的类型。 很多其它的信息,请參阅接下来的样例。 一个布局管理器定位RecyclerView内部的item视图(view),并确定何时重用对用户不在可见的item视图(view)。 为了重用(或者回收)视图(view)。布局管理器可能会要求适配器使用数据集合中的不同的数据去替换视图(view)的内容。通过这样的方式回收视图(view)避免产生不必要的视图(view)或运行代价高的findViewById()方法,提高了(RecyclerView的)性能。 RecyclerView提供这些内置的布局管理器: lLinearLayoutManager(用来)显示垂直或水平滚动的列表项 lGridLayoutManager(用来)显示网格中的item(项) lStaggeredGridLayoutManager(用来)显示交错的网格item(项目) 能够通过继承RecyclerView.LayoutManager类来自己定义自己的布局管理器。 动画 在RecyclerView中默认是开启了加入和删除items时的动画的。要自己定义这些动画。继承RecyclerView.ItemAnimator类。并使用RecyclerView.setItemAnimator()方法。 样例 图二:使用RecyclerView的列表 以下的代码演示样例演示怎样将RecyclerView加入到布局中: <!-- A RecyclerView with some commonly used attributes --> <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/> 一旦你在布局中加入了RecyclerView控件后。(在activity中)绑定控件。将其连接到一个布局管理器中,并给他附上要显示的数据适配器。 public class MyActivity extends Activity { private RecyclerView mRecyclerView; private RecyclerView.Adapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_activity); mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); // specify an adapter (see also next example) mAdapter = new MyAdapter(myDataset); mRecyclerView.setAdapter(mAdapter); } ... } 该适配器提供数据集中对item(项)的訪问,创建item相应的视图(view)。还有在原来的item不在可见时用新的数据替代了一些的视图(view)。以下的代码显示了一个简单的实现,它由一个字符串数组的数据集用item上的TextView控件显示: public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private String[] mDataset; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and // you provide access to all the views for a data item in a view holder public static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case public TextView mTextView; public ViewHolder(TextView v) { super(v); mTextView = v; } } // Provide a suitable constructor (depends on the kind of dataset) public MyAdapter(String[] myDataset) { mDataset = myDataset; } // Create new views (invoked by the layout manager) @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.my_text_view, parent, false); // set the view's size, margins, paddings and layout parameters ... ViewHolder vh = new ViewHolder(v); return vh; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(ViewHolder holder, int position) { // - get element from your dataset at this position // - replace the contents of the view with that element holder.mTextView.setText(mDataset[position]); } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mDataset.length; } } 创建卡片 CardView继承了FrameLayout类。并让你在里面的卡片中(显示)有跨平台一致性的外观。CardView控件能够有阴影和圆角(效果)。 要创建具有阴影效果的卡片,能够使用card_view:cardElevation属性。 CardView会在Android5.0(API级别21)以上的系统中使用真实高程(elevation)和动态阴影,(而)在较低的系统版本号中会回落到程序式的阴影效果显示。 欲了解很多其它信息。请參阅Maintaining Compatibility(保持兼容性)。 使用这些属性来定制CardView控件的外观: l 在布局中设置圆角半径,使用card_view:cardCornerRadius属性 l 在代码中设置圆角半径,使用CardView.setRadius方法 l 要设置一个卡片的背景颜色,使用card_view:cardBackgroundColor属性 以下的代码演示样例显示了怎样在你的布局里加入CardView控件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:card_view="http://schemas.android.com/apk/res-auto" ... > <!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp" card_view:cardCornerRadius="4dp"> <TextView android:id="@+id/info_text" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v7.widget.CardView> </LinearLayout> 很多其它的信息民情參阅CardView的API文档。 图三:卡片演示样例 加入依赖 RecyclerView和CardView控件都是v7支持库的一部分。要在项目中使用这些控件。加入以下的Gradle依赖在你的程序模块中: dependencies { ... compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+' } ------------------------------------------------------------------------ 切割线 -------------------------------------------------------------------------- Elcipse中加入RecyclerView和CardView的依赖 首先确保你的sdk里的Extras里的support library项是最新的 然后进入sdk文件夹里的例如以下文件夹里,把appcompat和cardview项目导入到eclipse的工作空间,而recyclerview则不须要了。由于里面就jar文件没有资源文件。 导入appcompat和项目后。须要把recyclerview目录里的jar包拷贝到appcompat项目的libs目录里然后eclipse就会相当于自己主动帮我们对jar包build path了,例如以下: 而cardview是作为一个项目导进来的,由于它须要一些自己的资源文件。例如以下: 我们须要把cardview项目作为Library项目去给appcompat项目依赖。这样在我们自己的项目中就仅仅需加入appcompat依赖就好了不用再加入cardview项目的依赖。 这样我们就算完毕了~能够在我们自己的项目中使用了。 Demo演示演示样例: Demo源代码下载地址:http://download.csdn.net/detail/bbld_/8078205 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5047093.html,如需转载请自行联系原作者

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

在Android(OPhone)模拟器中加载和使用SDCard

Android 模拟器或真机都会有一定大小的内部存储空间(不是指内存,指的是持久化存储空间),但这并不够,有时我们需要更大的存储空间。为了在模拟器上开发使用扩展存储空间的程序,需要在 PC 上模拟一个 SDCard 的虚拟文件,然后加载到模拟器中。 sdcard 文件使用 tools 目录下的 mksdcard.exe 命令生成,假设要生成大小 256M 的 sdcard 文件,可以使用如下的命令: mksdcard - lmycard256Mcard / mycard.img 使用mksdcard 命令要注意如下六点: 1.mycard 命令可以使用三种尺寸:字节、K 和M 。如果只使用数字,表示字节。后面还可以跟K ,如262144K ,也表示256M 。 2.mycard 建立的虚拟文件最小为8M ,也就是说,模拟器只支持大于8M 的虚拟文件。 3.-l 命令行参数表示虚拟磁盘的卷标,可以没有该参数。 4. 虚拟文件的扩展名可以是任意的,如mycard.abc 。 5.mksdcard 命令不会自动建立不存在的目录,因此,在执行上面命令之前,要先在当前目录中建立一个card 目录。 6.mksdcard 命令是按实际大小生成的sdcard 虚拟文件。也就是说,生成256M 的虚拟文件的尺寸就是256M ,如果生成较大的虚拟文件,要看看自己的硬盘空间够不够哦! 在执行完上面的命令后,执行下面的命令启动android 模拟器: emulator - avdavd1 - sdcardcard\mycard.img 如果在开发环境(Eclipse )中,可以在Run Configuration 对话框中设置启动参数,如图1 所示。 图1 当然,也可以在Preferences 对话框中设置默认启动参数。如图2所示。这样在新建立的Android 工程中就自动加入了装载sdcard 虚拟文件的命令行参数。 图2 如果读者使用 OPhone 虚拟机,设置的方法是完全一样的。然后在虚拟机中的 Setting 里看看 sdcard ,是否找到,如图 2 所示。 图3 那么如何查看 sdcard 虚拟设备中的内容呢?方法很多,最简单的就是使用 android eclipse 插件带的 DDMS 透视图。如图 4 所示。 图4 右上角的几个按钮可以删除、添加文件。 如果不使用DDMS 插件,或不在eclipse 里工作,也可以使用其他工具来操作sdcard 虚拟设备。如在windows 下,可以使用mtools ,该软件可以从如下地址下载: http://files.cnblogs.com/nokiaguy/winima81.rar 安装完后,用mtools 打开mycard.img ,就会看到相应的目录和文件。如图5 所示。 图5 如果读者使用的是linux ,可以使用mount 命令来将sdcard 虚拟文件映射成linux 的目录。先使用下面的命令: mount - oloopmycard.img / mnt / card 执行上面的命令后,将会输出如下的错误: mount::youmustspecifythefilesystemtype 出现上面错误的原因是由于img 文件的开头包含了mbr ,以致于mount 命令无法识别,当然,如果跳过这个就可以了。我们可以执行下面的命令看看应该跳过多少个字节: fdisk - ulmycard.img 输出的内容见图 6 。 图6 找到一个start 的值,本例是129 ,然后找到Units 的值,是512 512 * 129 = 66048 Ok ,就用下面的命令: mount - oloop,offset = 66048 mycard.img / mnt / card 执行完上面的命令后,进入/mnt/card 目录,就会看到mycard.img 中的文件了。 如果想在android 虚拟机中访问sdcard 中的文件,首先要获得sdcard 的路径。代码如下: java.io.FilesdcardDir = android.os.Environment.getExternalStorageDirectory(); sdcard的目录一般为“/sdcard”。 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214360 ,如需转载请自行联系原作者

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

Android读取用户号码,手机串号,SIM序列号

1、使用TelephonyManager提供的方法,核心代码: TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE); String imei = tm.getDeviceId(); //取出IMEI Log.d(TAG, "IMEI:"+imei); String tel = tm.getLine1Number(); //取出MSISDN,很可能为空 Log.d(TAG, "MSISDN:"+tel); String iccid =tm.getSimSerialNumber(); //取出ICCID Log.d(TAG, "ICCID:"+iccid); String imsi =tm.getSubscriberId(); //取出IMSI Log.d(TAG, "IMSI:"+imsi); 2、加入权限 在manifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/archive/2012/03/08/2385515.html ,如需转载请自行联系原作者

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

字节跳动打造 MegaScale:用于训练 LLM 的单一“万集群”

字节跳动联合北京大学的研究团队在 arXiv 上发表论文,介绍他们用于训练大语言模型的生产系统 MegaScale。该团队为 MegaScale 搭建了超过 10000 块 GPU(12,288)的单一集群,算力利用率超过 55%。 https://arxiv.org/pdf/2402.15627.pdf 整个系统涵盖了从模型块和优化器设计到计算与通信的重叠、运算符优化、数据管道以及网络性能调整的算法和系统组件。 据介绍,MegaScale 将大语言模型训练扩展到超过 10000 个 GPU,在 12288 个 GPU 上训练 175B LLM 模型时,MegaScale 实现了 55.2% 的模型 FLOP 利用率(MFU),与层内模型并行技术 Megatron-LM 相比,MFU 提高了 1.34 倍。 MegaScale 还包含一套诊断工具,用于监控堆栈深处的系统组件和事件,找出根本原因,并通过有效的技术来实现容错 (fault tolerance) 和缓解滞后问题。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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等操作系统。

用户登录
用户注册