zoukankan      html  css  js  c++  java
  • 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属性可以很方便的抽取一些属性,不用重复写很多相同的属性。
    定义:

    <style name="TextViewStyle">
        <item name="android:textColor">#000</item>
        <item name="android:textSize">20sp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:background">#8f00</item>
        <item name="android:gravity">center_horizontal</item>
    </style>
    
    <style name="TextViewStyle1" parent="TextViewStyle">
        <item name="android:textSize">40sp</item>
        <item name="android:background">#8ff0</item>
    </style>
    

    主题####

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

    //1、设置背景图Theme  
    <style name="Theme.AppStartLoad" parent="android:Theme">    
    <item name="android:windowBackground">@drawable/ipod_bg</item>    
    <item name="android:windowNoTitle">true</item>    
    </style>  
    
    //2、设置透明Theme  
    <style name="Theme.AppStartLoadTranslucent" parent="android:Theme">    
    <item name="android:windowIsTranslucent">true</item>   
    <item name="android:windowNoTitle">true</item>    
    </style>    
    

    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节省资源。
    位图压缩

    代码托管

    上周考试错题总结

    问题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小时

    参考资料

  • 相关阅读:
    mysql 存储引擎
    mysql优化的理解(转载)
    转载:字节流与字符流的理解
    转载:java面试题(二)
    androidstudio与unity进行交互
    偶尔出现button不能点击的情况
    R文件报错:cannot resolve symbol ‘R’
    有时候老师报空错误,但是输出和在面板上看是得到了实例的
    边缘与多边形碰撞盒不能编辑的原因
    编程内功修炼
  • 原文地址:https://www.cnblogs.com/Shambryce/p/10746973.html
Copyright © 2011-2022 走看看