![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android学习记录
文章平均质量分 82
NingSweet
这个作者很懒,什么都没留下…
展开
-
17 Looper、Handler和HandlerThread
配置RecyclerView以显示图片新建布局文件ImageView 由 RecyclerView 的 GridLayoutManager 负责管理,这意味着其宽度会变,而高度保持固定不变 。为最大化利用ImageView的空间,应设置它的 scaleType 属性值为centerCrop 。这个属性值的作用是先居中放置图片,然后放大较小图片,裁剪较大图片(裁两头)以匹配视图。gallery_item.xml<ImageView xmlns:android="http://schema原创 2021-06-25 09:15:46 · 183 阅读 · 0 评论 -
16 HTTP与后台任务
创建PhotoGallery应用新建继承自AppCompatActivity类的SingleFragmentActivity抽象类,使PhotoGalleryActivity类继承它;新建布局文件fragment_photo_gallery.xml,布置RecyclerView视图;新建PhotoGalleryFragment类,使其继承Fragment,初始化RecyclerView视图,并设置此fragment为保留fragment。PhotoGalleryFragment.javapri原创 2021-06-25 09:15:29 · 204 阅读 · 0 评论 -
15 深入学习intent和任务
创建NerdLauncher项目新建继承自AppCompatActivity类的SingleFragmentActivity抽象类,使NerdLauncherActivity类继承它;新建布局文件fragment_nerd_launcher.xml,布置RecyclerView视图;新建NerdLauncherFragment类,使其继承Fragment,初始化RecyclerView视图。NerdLauncherFragment.javapublic class NerdLauncherFr原创 2021-06-25 09:15:07 · 120 阅读 · 0 评论 -
14 样式与主题
颜色资源在colors.xml中定义一些颜色:<resources> <color name="colorPrimary">#008577</color> <color name="colorPrimaryDark">#00574B</color> <color name="colorAccent">#D81B60</color> <color name="light_green"原创 2021-06-25 09:14:45 · 80 阅读 · 0 评论 -
13 使用SoundPool播放音频
创建SoundPoolBeatBox.javapublic class BeatBox { //... private static final int MAX_SOUNDS = 5; private AssetManager mAssets; private List<Sound> mSounds = new ArrayList<>(); private SoundPool mSoundPool; public BeatBox原创 2021-06-25 09:14:18 · 440 阅读 · 0 评论 -
12 Assets
为何使用assetsresource资源可以存储声音文件,可以通过ID来获取它。将类似的声音文件存储为资源后,我们就可以按特定的方式使用它们了,如根据设备的语言及系统版本调用不同的声音资源。如果使用Android资源系统一个个去处理,效率会很低。assets可以看作随应用打包的微型文件系统,支持任意层次的文件目录结构。创建BeatBox应用创建布局文件主布局文件fragment_beat_box.xml用于生成RecyclerView布局。<androidx.recyclerview.w原创 2021-06-25 09:14:02 · 77 阅读 · 0 评论 -
11 使用intent拍照
引入布局文件新建布局文件view_camera_and_title.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout原创 2021-06-25 09:13:40 · 211 阅读 · 0 评论 -
10 隐式intent
添加嫌疑人信息至模型层为Crime添加成员变量Crime.javapublic class Crime { //... private String mSuspect; private String mPhone; //...}添加数据库字段CrimeDbSchema.javapublic class CrimeDbSchema { //数据表 public static final class CrimeTable { //表原创 2021-06-25 09:13:10 · 162 阅读 · 0 评论 -
09 SQLite数据库
SQLite数据库应用沙盒目录/data/data/com.example.criminalintentSQLite的特点SQLite使用单个文件存储数据,使用SQLite库读取数据。创建表字段时,不需要指定字段类型。定义Schema创建com.example.criminalintent.database.CrimeDbSchema类,定义数据表:public class CrimeDbSchema { //数据表 public static final class原创 2021-06-24 16:10:11 · 84 阅读 · 0 评论 -
08 工具栏
使用AppCompat库AndroidManifest.xml... <application ... android:theme="@style/AppTheme"> ... </application>...res/values/styles.xml... <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionB原创 2021-06-24 16:09:23 · 100 阅读 · 0 评论 -
07 对话框
创建DialogFragment将AlertDialog封装在DialogFragment实例中使用,这样FragmentManager管理对话框,可以更灵活地显示对话框。如果旋转设备,单独使用的AlertDialog会消失,而封装在fragment中的AlertDialog不会有此问题。就CriminalIntent应用来说,我们首先会创建名为 DatePickerFragment 的DialogFragment 子类。然后,在 DatePickerFragment 中,创建并配置显示 DatePic原创 2021-06-24 16:08:29 · 57 阅读 · 0 评论 -
06 使用ViewPager
创建布局文件activity_crime_pager.xml<androidx.viewpager.widget.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_crime_pager_view_pager" android:layout_width="match_parent" android:layout_height="原创 2021-06-24 16:06:59 · 71 阅读 · 0 评论 -
05 使用fragment argument
附加extra信息在MainActivity类中新增newIntent方法:public static final String EXTRA_CRIME_ID = "com.example.criminalintent.crime_id";public static Intent newIntent(Context packageContext, UUID crimeId) { Intent intent = new Intent(packageContext, MainActivity.c原创 2021-06-24 16:05:59 · 174 阅读 · 0 评论 -
04 使用RecyclerView显示列表
单例与数据集中存储单例是特殊的java类,在创建实例时,一个单例类仅允许创建一个实例。要创建单例,需创建一个带有私有构造方法及get()方法的类,如果实例已存在,get()方法就直接返回它,否则get()方法就会调用构造方法创建它。public class CrimeLab { private static CrimeLab sCrimeLab; private List<Crime> mCrimes; private CrimeLab(Context cont原创 2021-06-24 16:04:55 · 608 阅读 · 0 评论 -
03 UI Fragment
托管UI fragment为托管UI fragment,activity必须做到:在布局中为fragment的视图安排位置;管理fragment实例的生命周期。fragment的生命周期托管的两种方式在activity布局中添加fragment在activity代码中添加fragment我们选择在activity代码中添加UI fragment,但还是要在activity视图层级结构中为fragment视图安排位置。<FrameLayout xmlns:android="h原创 2021-06-24 16:02:19 · 102 阅读 · 0 评论 -
02 Activity间的数据传递
创建新的activity右键单击com.example.geoquiz包,选择New => Activity => Empty Activity,新建CheatActivity类。CheatActivity类的布局文件activity_cheat.xml为:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co原创 2021-06-24 15:58:57 · 134 阅读 · 0 评论 -
01 Android开发基础
XML布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <TextView原创 2021-06-24 15:57:02 · 79 阅读 · 0 评论 -
00 Linux常用命令
移除软件包sudo apt remove xxx移除锁sudo rm /var/lib/dpkg/lock-frontendsudo rm /var/lib/dpkg/locksudo rm /var/cache/apt/archives/lock创建快捷方式创建快捷方式sudo gedit /usr/share/applications/xxx.desktop为快捷方式xxx.desktop输入以下内容[Desktop Entry]Name = xxxcommen原创 2021-06-24 15:53:19 · 52 阅读 · 0 评论