- 博客(18)
- 收藏
- 关注
原创 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
191
原创 16 HTTP与后台任务
创建PhotoGallery应用新建继承自AppCompatActivity类的SingleFragmentActivity抽象类,使PhotoGalleryActivity类继承它;新建布局文件fragment_photo_gallery.xml,布置RecyclerView视图;新建PhotoGalleryFragment类,使其继承Fragment,初始化RecyclerView视图,并设置此fragment为保留fragment。PhotoGalleryFragment.javapri
2021-06-25 09:15:29
210
原创 15 深入学习intent和任务
创建NerdLauncher项目新建继承自AppCompatActivity类的SingleFragmentActivity抽象类,使NerdLauncherActivity类继承它;新建布局文件fragment_nerd_launcher.xml,布置RecyclerView视图;新建NerdLauncherFragment类,使其继承Fragment,初始化RecyclerView视图。NerdLauncherFragment.javapublic class NerdLauncherFr
2021-06-25 09:15:07
146
原创 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
98
原创 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
469
原创 12 Assets
为何使用assetsresource资源可以存储声音文件,可以通过ID来获取它。将类似的声音文件存储为资源后,我们就可以按特定的方式使用它们了,如根据设备的语言及系统版本调用不同的声音资源。如果使用Android资源系统一个个去处理,效率会很低。assets可以看作随应用打包的微型文件系统,支持任意层次的文件目录结构。创建BeatBox应用创建布局文件主布局文件fragment_beat_box.xml用于生成RecyclerView布局。<androidx.recyclerview.w
2021-06-25 09:14:02
82
原创 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
237
原创 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
164
原创 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
89
原创 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
106
原创 07 对话框
创建DialogFragment将AlertDialog封装在DialogFragment实例中使用,这样FragmentManager管理对话框,可以更灵活地显示对话框。如果旋转设备,单独使用的AlertDialog会消失,而封装在fragment中的AlertDialog不会有此问题。就CriminalIntent应用来说,我们首先会创建名为 DatePickerFragment 的DialogFragment 子类。然后,在 DatePickerFragment 中,创建并配置显示 DatePic
2021-06-24 16:08:29
62
原创 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
92
原创 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
180
原创 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
626
原创 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
137
原创 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
144
原创 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
87
原创 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
56
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人