Android学习(三)

学号 20189214 《Android程序开发》第八周学习总结

教材学习内容总结

GridView

GridView和ListView一样是AbsListView的子类;
都需要一个Adapter来适配数据。

下面是GridView中的一些属性:

  • android:columnWidth:设置列的宽度
  • android:gravity:组件对其方式
  • android:horizontalSpacing:水平方向每个单元格的间距
  • android:verticalSpacing:垂直方向每个单元格的间距
  • android:numColumns:设置列数
  • android:stretchMode:设置拉伸模式,可选值如下: none:不拉伸;spacingWidth:拉伸元素间的间隔空隙 columnWidth:仅仅拉伸表格元素自身 spacingWidthUniform:既拉元素间距又拉伸他们之间的间隔空袭

    样式和主题

    样式

    使用style属性可以很方便的抽取一些属性,不用重复写很多相同的属性。
    定义:

    主题

    主题一般解决Activity切换黑屏、白屏问题:

    //1、设置背景图Theme

    //2、设置透明Theme

    1.透明度设置

    WindowManager.LayoutParams lp=getWindo().getAttributes();
    lp.alpha=0.5f;
    getWindow().setAttributes(lp);
    alpha在0.0f到1.0f之间。

2.昏暗度

WindowManager.LayoutParams lp=getWindow().getAttributes();
lp.dimAmount=0.5f;
getWindow().setAttributes(lp);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dimAmount在0.0f和1.0f之间。

3.背景模糊

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
View设置View view=...
view.getBackground().setAlpha(100);//0~255透明度值 ,0为完全透明,255为不透明

位图处理

加载位图

BitmapFactory类可以从一个文件、一个字节数组、一个Android资源或一个InputStream来构建一个Bitmap。
1、通过Bitmap的静态方法static Bitmap createBitmap()系
| 方法名(只列出部分方法) | 用法说明|
| -------- | :----------------:|
| createBitmap(Bitmap src) | 复制位图 |
| createBitmap(Bitmap src,int x ,int y,int w,int h) | 从源位图src的指定坐标(x,y)开始,截取宽w,高h的部分,用于创建新的位图对象 |
| createScaledBitmap(Bitmap src,int w ,int h,boolean filter) | 对源位图src缩放成宽为w,高为h的新位图 |
| createBitmap(int w ,int h,Bitmap.Config config) | 创建一个宽w,高h的新位图(config为位图的内部配置枚举类) |
| createBitmap(Bitmap src,int x ,int y,int w,int h,Matrix m,boolean filter) | 从源位图src的指定坐标(x,y)开始,截取宽w,高h的部分,按照Matrix变换创建新的位图对象 |
2、通过BitmapFactory工厂类的static Bitmap decodeXxx()系
| 方法名(只列出部分方法) | 用法说明|
| -------- | :----------------:|
| decodeByteArray(byte[] data, int offset, int length) | 从指定字节数组的offset位置开始,将长度为length的数据解析成位图 |
| decodeFile(String pathName) | 从pathName对应的文件解析成的位图对象 |
| decodeFileDescriptor(FileDescriptor fd) |从FileDescriptor中解析成的位图对象 |
| decodeResource(Resource res,int id) | 根据给定的资源Id解析成位图 |
| decodeStream(InputStream in) | 把输入流解析成位图 |

教材学习中的问题和解决过程

问题1:位图处理中压缩
问题1解决方案:压缩方法有以下质量压缩、采样率压缩、缩放法压缩、RGB_565法、createScaledBitmap等方法,也可使用新的图片格式webP节省资源。
位图压缩

代码托管

Android学习(三)

上周考试错题总结

问题1:Android中所有的意图都可以用来启动活动.
问题1解决方案:并不是所有的意图都可以用来启动活动。
要确保一个 Intent 能够启动一个活动,需要在将其传递给
startActivity 之前,调用其 resolveActivity 方法:

if (intent.resolveActivity(getPackageManager()) != null) {
                    
startActivity(intent);
}
    
            

不能解析为一个动作的意图,如果传递给了 startActivity,将会抛出一个异常。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 150/200 2/2 20/20
第二周 200/400 1/3 20/40
第三周 100/500 1/4 10/50
第四周 200/700 1/5 15/65
第五周 1486/2186 1/6 15/80
第六周 1400/3586 1/7 18/98
第七周 1400/5000 1/8 18/116
第八周 1200/6200 1/9 15/131
  • 计划学习时间:15小时

  • 实际学习时间:15小时

参考资料

Android学习(三)

上一篇:2018-2019-2 20189203 移动平台应用开发实践第八周学习总结


下一篇:Domain logic approaches