中级实训Android学习记录——项目1、2重铸记录

学习记录 2020/11/25

制作项目1

  • 遇到的问题

    • 引入的图片的命名应该全为小写字母、数字、下划线的组合,否则运行时报错

    • 在运用ImageButton时,如果使用的是

      android:src="@drawable/spanish"
      

      会因为图片拉伸问题,在ImageButton周围出现灰色边框,要去掉灰色边框,将上面的代码改成下面的代码即可

      android:background="@drawable/spanish"
      
    • 用layout_width和layout_height设置高度和宽度后,使用

      android:scaleType="fitXY"
      

      可以将内容拉伸至填满整个组件(图片拉伸应用)

    • 想要使用ImageButton,并让图片跟随Button一起圆角化,但是做不到,最后利用cardView才做到:

      <androidx.cardview.widget.CardView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      app:cardCornerRadius="20dp"
      android:layout_margin="10dp"
      >
      <ImageButton
      android:layout_width="150dp"
      android:layout_height="150dp"
      android:scaleType="fitXY"
      android:background="@drawable/spanish"
      />
      </androidx.cardview.widget.CardView>
      

      在ImageButton外面框一个cardView,设置cardView的cardCornerRadius即可

    • 使用selector的xml来定义点击和非点击的图标

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_selected="true" android:drawable="@drawable/book1"></item>
       <item android:state_selected="false" android:drawable="@drawable/book"></item>
      </selector>
      

      将selected和unselected的图标改成自定义的图标即可

  • 项目一完成,文件夹为Application1

  • 准备项目二,文件夹为MyApplication5

制作项目二

  • 进行动画绘制时,需要先在res文件夹下创建anim文件夹,然后他才会出现可以放set的文件类型,在set中实现一系列的动画即可

  • 在进行Fragment之间的数据传输,运用Fragment的newInstance方法来传递参数以达到目的

  • 发现boolean和Integer之间是不能转化的,很诡异

  • 渐变是利用shape类型的xml文件创建的,使用gradient标签就行

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
     <gradient android:startColor="#ff0000" android:endColor="#0400ff" android:angle="315"></gradient>
    </shape>
    

    像以上代码,就产生左上角红色到右下角蓝色的渐变

    需要特别注意的是,这里的angle只能是45的倍数

  • 使用ImageButton会出现一堆问题,不如直接使用TextView,可以达到相同的效果,如改变ImageButton的background不能真正地实现渐变色,而使用TextView就很简单,初步排查可能觉得ImageButton的backgroundTint这个属性是固定的,网络检索是渲染效果,但是没有解决问题的方法。

posted @ 2020-11-28 20:39  沐锋丶  阅读(88)  评论(0编辑  收藏  举报