天天看點

android中一些view處理(拖動,定位,顯示,圖層)

在看到現行手機能夠趨近擁有與pc機相同性能的同時,我們不難發現各種應用、軟體都移植到了手機上,略從android,iphone,ophone等智能手機系統,我們便能一葉知秋了。

      每天學習着android,會發現這樣一個感受,android中很多東西對于一個喜歡口若懸河的家夥必然顯得非常容易。慢慢解決問題的過程中才發 現,android需要我們自己去摸,去體會,即使市面上不乏很多優秀的書籍,但各有千秋,又各有瑕疵與短見。或者說,有些書适合入門,有些适合進階,有 些适合探究等等。閑話休提,且入正題。

       除了android中“四大件”(我喜歡這樣稱呼他們,activity,service,broadcast、data-provider),還有我們 必不可少的,使用者體驗離不開的,手機要吸引人不能不考慮的就是View,View家族很強大,其子類很豐富,從TextView到Button。了解了 android手機設計對于MVC模式之重視程度是必不容忽視的,不僅使我們在設計體驗了友善,也讓我們直覺看到各種布局樣式,很易了解android中 各種容器,元件的層次。

       前面做過一個例子:想做一個對圖檔進行拖動的程式,便考慮到用自己寫一個View子類。這個過程讓我主動去了解onDraw(),以及其被調用的時間和境 況,因為圖檔移動過程中是View進行更新的結果!完成之後,發現onDraw中的drawBitmap()給我出來一道難題:圖檔越大,拖動效果越差, 近乎剩下突變!後來找到網上找到一個拖動Button的例子,效果很好,于是想到用ImageButton代替之,果然效果很好,便以為 ImageButton乃“神物”也,便親之有加。後冷靜思索,比較代碼,發現是由于在ImageButton中直接将圖檔設為background才導 緻拖動栩栩如生!應用至MyView,也一樣了,但個中原因還需再花功夫才能與大家分享。

       想接着上面的MyView談,發現我用上了一個倒叙的說法。随機定位,這個功能是在拖動之前實驗的。反反複複的找了View的setX()函數,很失 望,android沒有(有getWidth()等函數)。不賣關子了:你用layout(a,b,c,d)函數效果極佳!注意:牢牢監視a,b參數,便 能在圖檔定位方面為所欲為了。

       顯示方面,我想說的是别忽視Layout這個類的布局功能,簡單了解之,便能很容易掌握。習慣了ps,flash,j2me中的圖層的叫法,可能很難找到android它能幫助你想要完成的功能,記住FrameLayout,用它便能玩玩圖層什麼的。

       很驚異的發現:

java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.AbsoluteLayout

  而:

java.lang.Object
   ↳ android.text.Layout

我相信是合理的存在,是以還有很多,我們期待共同發現,探究!

版權聲明:本文為CSDN部落客「weixin_33985679」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_33985679/article/details/91975777