Azure╰

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

本人刚开始接触移动开发方面的知识,在很多方面都感觉寸步难行,移动开发这门课程应该是在我一年后学校才会开设,而移动开发所用到的java也是在我下个学期才开始正式学习。所以,现在的我很多地方,都非常的迷惑,都说好奇心会害死人,但对于遨游在知识海洋的我们来说,它是一个驱动器。因为有这个驱动器,我用了20天开始零基础的学习java,目前在本人看来,java和c++有着许多可以贯通的地方,最大的庆幸是java摈除了c++里的难点指针,这是有点欣慰的地方。但毕竟是一门独立的编程语言,存在既有他强大的地方和独特的地方,“万物存在皆有它之道理”,我相信学好任何一门语言的路都是艰辛的,路并不平坦。加油,一起同行的各位程序猿,在有一点java的基础上,我开始接触android,(自我感觉入手过快,只不过好奇心实在太强烈)。我不得不佩服android存在的强大,就光是android studio这款android开发环境就搞了我几天,这款开发环境是全英文的,(对于我这种English渣渣来说可谓是痛上加痛),对于这款环境的下载和配置都是有讲究的,这里就不多说了(如果有时间,会在下一篇博客进行简单叙述步骤)。下面贴一张他的正面照把😁。是不是很清秀¥¥。然后记录下自己这些天学的一些小小的技巧,也希望能帮助更多的小白

 

一:[Android Studio] android 去掉按钮自带阴影效果

在Button的配置项增加:

style="?android:attr/borderlessButtonStyle"

下面是带阴影的按钮代码及截图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ccc278"
        android:text="nihao"
        android:layout_gravity="center"/>

</LinearLayout>

 


这里设置的是带黄色背景的按钮,通过在Button里添加

 

style="?android:attr/borderlessButtonStyle" 去掉按钮背景,(注意:如果你给你的按钮添加了背景颜色,需要一并去掉,不然达不到效果,你可以自己试试)
下面是去掉后的代码和截图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
        style="?android:attr/borderlessButtonStyle"
        android:id="@+id/one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="nihao"
        android:layout_gravity="center"/>

</LinearLayout>

是不是按钮已经不带有背景了,ok,继续下一个

 

二:如何实现按钮风格为“上图下文字”式,这在当下是非常流行的,其风格如下,qq下面的Tap栏就是这种风格

 

下面紧接这上面的例子继续
要想实现这种风格,只需要在Button里加一句
android:drawableTop=""
android:drawableTop就是将图片放置于某个组件的上方,下面看下代码和效果图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
        style="?android:attr/borderlessButtonStyle"
        android:id="@+id/one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="nihao"
        android:drawableTop="@mipmap/ic_launcher_round"
        android:layout_gravity="center"/>

</LinearLayout>

是不是做到了。ok ,举一反三,如果想把图片放在文字左边,或右边,下面呢,对应的有

drawableLeft、drawableRight、drawableBottom四个属性值,来设定文字对应方向的图片,但是却没有设置图片大小的属性值。
要想设置这些图片的大小其实很简单,我们要了解一下下面几个方法:

  • getCompoundDrawables()                      该方法返回包含控件左,上,右,下四个位置的Drawable的数组
  • setBounds(left,top,right,bottom)            指定drawable的边界
  • setCompoundDrawables(drawableLeft, drawableTop, drawableRight, drawableBottom)           设置控件左,上,右,下四个位置的Drawable

Button、RadioButton其实都是TextView的子类,这三个方法都是TextView里的方法

所以流程就是,我们首先拿到控件上面位置的drawable,然后给指定drawable的边界,最后再把drawable设置进去,这一段参考了下面的博客

https://blog.csdn.net/qiao0809/article/details/52327618

 

 

三:android:layout_weight和android:drawableTop

android:layout_weight="1.0"

layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。 
所有的视图都有一个layout_weight值,默认为零,意思是需要显示 
多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视 
图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight 
值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布 
局的layout_weight值中所占的比率而定。 
举个例子:比如说我们在 水平方向上有一个文本标签和两个文本编辑元素。 
该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。 
如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分 
在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个  
文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2, 
则剩余空间的三分之二分给第一个,三分之一分给第二个(数值越小,重要度越高)

 

看代码

不加android:layout_weight="1.0"的情况

加了的情况

android:drawableTop就是将图片放置于某个组件的上方

 

 

四:android:padding和android:margin的区别

android:layout_marginLeft指该控件距离边父控件的边距,

android:paddingLeft指该控件内部内容,如文本距离该控件的边距。

 

如:

当按钮分别设置以上两个属性时,得到的效果是不一样的。

android:paddingLeft="30px":

按钮上设置的内容(例如图片)离按钮左边边界30个像素。

android:layout_marginLeft="30px"

整个按钮离左边设置的内容30个像素

这二个属性是相对的,假设B是A的子控件,设置B的margin和设置A的padding能达到相同的效果。

下面是加了android:paddingLeft="100px"  和没加的效果图

你会发现整个按钮离左边框的距离增大了,至于android:margin这里不过多解释了。。。

 

 

 

下面是一些小标签

  1.  
    android:text="这里是文字"
  2.  
    android:textSize="字体大小"
  3.  
    android:textColor="颜色代码"
     
     
    android:layout_alignParentRight="true"
    使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
    android:layout_marginLeft="10dip"
    使当前控件左边空出相应的空间。
    android:layout_toLeftOf="@id/ok"
    使当前控件置于id为ok的控件的左边。
    android:layout_alignTop="@id/ok"
    使当前控件与id控件的上端对齐。


    padding表示填充,margin表示边距
    可通过android:padding属性进行设置,4个方向的边距属性为android:paddingLeft, android:paddingRight, android:paddingTop, and android:paddingBottom.


    结论:
    *android:layout_marginBottom
    *android:layout_marginLeft
    *android:layout_marginRight
    *android:layout_marginTop
    上面几个属性的值是根据下面的相对位置的对象的值来做计算的,如果没有相对的对象就以总体布局来计算
    *android:layout_below
    *android:layout_above
    *android:layout_toLeftOf
    *android:layout_toRightOf
    *android:layout_alignTop


    *android:layout_centerHrizontal //是否支持横屏或竖屏
    *android:layout_centerVertical //这个根据单词的意思:中心垂直
    *android:layout_centerInparent //
    android:layout_centerInParent="true"//居中在父对象
    android:layout_centerInParent="false" ... 浏览器不支持多窗口显示,意思就是说所有页面在单一窗口打开,这样避免了页面布局控制显示问题
    下面的相对于父的相对位置
    *android:layout_alignParentBottom
    *android:layout_alignParentLeft
    *android:layout_alignParentRight
    *android:layout_alignParentTop
    *android:layout_alignWithParentIfMissing 
     
     
     
     
     
posted on 2018-07-24 17:15  Azure╰  阅读(308)  评论(0编辑  收藏  举报