[Android Studio] 初体验
本人剛開始接觸移動開發方面的知識,在很多方面都感覺寸步難行,移動開發這門課程應該是在我一年后學校才會開設,而移動開發所用到的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"><Buttonandroid: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"><Buttonstyle="?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"><Buttonstyle="?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這里不過多解釋了。。。
?
?
?
下面是一些小標簽
使當前控件的右端和父控件的右端對齊。這里屬性值只能為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?
轉載于:https://www.cnblogs.com/lklk/p/9361248.html
總結
以上是生活随笔為你收集整理的[Android Studio] 初体验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习并发编程
- 下一篇: [Python设计模式] 第1章 计算器