安卓零碎知識集中(2),安卓知識集中

來源:互聯網
上載者:User

安卓零碎知識集中(2),安卓知識集中

1、擷取標題列的高度

Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();int titleBarHeight = contentTop - statusBarHeight;textView.setText("statusBarHeight" + statusBarHeight + ";contentTop="+ contentTop + ";titleBarHeight" + titleBarHeight);

2、以Acivity作為布局

註:該類必須繼承ActivityGroup

LocalActivityManager activityManager;activityManager = getLocalActivityManager();View view2 = activityManager.startActivity("act2",new Intent(this, Act2.class)).getDecorView();linearLayout.addView(view2, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

3、螢幕並儲存

View view = getWindow().getDecorView();Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),view.getHeight(), Config.RGB_565);                  view.draw(new Canvas(bitmap));              imageView.setImageBitmap(bitmap);

4、android 擷取組件尺寸大小

在oncreate()中利用view.getWidth()或是view.getHeiht()來擷取view的寬和高,看似沒有問題,其實他們去得值是0,並不是你想要的結果?

這是為什麼呢?

在調用oncreate()方法時,介面處於不可見狀態,記憶體載入組件還沒有繪製出來,你是無法擷取他的尺寸。

那如何在繪製組件之前能擷取到該組件的尺寸大小呢?

這裡有三種方法,經過驗證的:

(1)

int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int height =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); view.measure(width,height); int height=view.getMeasuredHeight(); int width=view.getMeasuredWidth();

(2)
//增加組件繪製之前的監聽ViewTreeObserver vto =view.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {    @Override    public booleanonPreDraw() {        int height =view.getMeasuredHeight();        int width =view.getMeasuredWidth();        } }); 
(3)
//增加整體布局監聽ViewTreeObserver vto = view.getViewTreeObserver();  vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener(){     @Override     public voidonGlobalLayout() {       view.getViewTreeObserver().removeGlobalOnLayoutListener(this);          int height =view.getMeasuredHeight();      int width =view.getMeasuredWidth();      }  });
那麼,在activity進入運行期時,組件的尺寸擷取方法就很簡單了,直接getWidth()和getHeight().





         





安卓學習的方法,之前零零碎碎的學了一些,簡單的布局控制項也了接了一些但是總的不知道怎學,看視頻

我覺得多加入安卓的論壇,多請教論壇上的高手。他們都有秘籍的偶學生正確的學習方法
兩千多年前孔子說過:“知之者不如好之者,好之者不如樂之者。”意思說,幹一件事,知道它,瞭解它不如愛好它,愛好它不如樂在其中。“好”和“樂”就是願意學,喜歡學,這就是興趣。興趣是最好的老師,有興趣才能產生愛好,愛好它就要去實踐它,達到樂在其中,有興趣才會形成學習的主動性和積極性,所以說:興趣是學習的不竭的動力源泉。只要你在平日的學習中做到課前預習找出重難疑問;積极參与課堂活動,認真思考問題注意歸納,主動發言收集激勵因子,那麼你學習的興趣就會更濃厚,你一定會更加喜歡文化課程的學習的。
要想取得好的學習成績,必須要有良好的學習習慣。習慣是經過重複練習而鞏固下來的穩重持久的條件反射和自然需要。建立良好的學習習慣,就會使自己學習感到有序而輕鬆。良好的學習習慣應是:耳、眼、腦、口、手並用,勤練習、多質疑、勤思考、重歸納、多應用,要注意總結規律性的東西,在學習過程中,要把教師所傳授的知識翻譯成為自己的特殊語言,並永久記憶在自己的腦海中。另外還要保證每天有一定的自學時間,以便加寬知識面和培養自己再學習能力。
1、課前預習。課前預習是提高聽課效果的一個重要策略。課前預習就是每節課前把本次課將要講授的內容進行預習,初步熟悉課程內容,找到聽課和理解的重點、痛點、疑點,記下自己的困惑之處、薄弱環節,帶著問題進課堂,以期在課堂學習中得以解決。
2、課堂學習。在課堂上要盡最大可能地跟著老師的思路走,儘可能使自己保持積極的聽課狀態,對於老師所講的重點、痛點、疑點要認真思考,通過聽講來解決預習時提出的問題,深化對問題的理解;通過聽課檢查和鍛煉自己的思維。並且不要滿足於老師的思路,應多思考一下有沒有其他的方法或可能。課堂的學習是一個雙向交流的過程:一方面老師講你聽,另一方面通過把你的反應反饋給老師,使老師知道自己所講的內容是否被你理解。因此你要積極地思考,認真地回答老師提出的問題,勇於發表自己的觀點和看法,使老師瞭解你現有的思維水平。要認真做好聽課筆記,記下課文的要點、重點、痛點,老師的解釋、提示和見解,自己的疑問和理解。俗話說“好記性不如爛筆頭”,再靈敏的腦袋也無法抗拒時間的消磨。做筆記是一種很好的輔助學習法,它可以協助你克服大腦記憶的限制,提示你回憶課堂教學內容。但是做筆記不能成為對教師內容的機械複製,它同時是一個思考的過程。做筆記一定要取捨得當,詳略適中,重點是老師提示的重點和自己不會的痛點。記筆記的過程必須科學分配自己的注意力,針對科目的難易有所側重:對於較難的科目,可以50%的時間聽講,50%的時間記筆記;對更注重靈活性和創造性的科目,90%的時間聽講,10%的時間記下提綱就足夠了。筆記必須要做到層次分明,一目瞭然,才更有價值。
3、課後複習。及時對聽課內容進行複習,進行積極的回憶和必要的重新學習,以加深對學習內容的總體理解,減少遺忘。而且,遺忘的進程是不均衡的,剛開始遺忘得較多、較快,以後遺忘得較少。根據遺忘發生的規律,可以採取適當的複習策略來克服遺忘,即在遺忘尚未產生之前,通過複習來避免遺忘,所以,在複習時要注意複習的時間安排。
根據有關研究,有效複習時間安排是:
第一次複習,學習結束後的5—10分鐘。
第二次複習,當天晚些時候或第二天。
第三次複習,一星期左右。
第四次複習,一個月左右。
第五次複習,半年左右。
根據上面的方法進行複習,可以比較有效地對抗遺忘。“活到老,學到老。”人離不開學習,生命不息,學習不止。學習是一個人終生獲得知識,取得經驗,轉化為行為的......餘下全文>>
 
怎進行安卓程式的開發,需要什知識

(1)首先要有編程的基礎,因為你要懂什麼是編程
(2)要玩的明白java,因為android說白了就是java的一個類庫,很多人還不會寫ava就開始搞android,這是很不明智的,而且效率會極低,因為現在android的書都是基於已經掌握java的前提的這個層次寫的,如果沒有java基礎可能前一兩章你能照著上面的做,但往後會非常吃力,也不得不一邊看android一邊惡補java,而這樣學成的java勢必非常的爛。
(3)要確定自己開發android的哪一方面,如果做遊戲的話,要知道自己做哪個類型的遊戲,例如如果你寫3D遊戲的話,還要有強大的OpenGL基礎,和強大的物理模型知識,物理模型這點新手較為難體會其重要性,舉個例子吧:你肯定玩過cut rope,那其中繩子的波動就是一個很成功的例子。
(4)說點鼓勵的話,android比ios好寫的多,沒有ios那些詭異的文法.............
(5)但是,如果想靠這個賺錢的話,而時間又有限的話,直接弄apple的ios開發,學objective-c,因為,android的發布市場太不規範,開發應用基本沒錢可轉,自己玩玩還行。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.