1. 程式人生 > >android瑣碎知識點記載

android瑣碎知識點記載

 一 圖片知識點

當Drawable資源被R.java收錄之後,就可以在XML資原始檔中,通過@drawable/draw_name來訪問該Drawable物件,也可以在Java程式碼中通過R.drawable.drwa_name訪問到該Drawable資源的ID,它是一個int型別的常量,如果需要獲取實際Drawable資源物件,則可以使用Resource.getDrawable(int id)方法通過其Drawable資源ID獲取對應的Drawable資源的物件。

   BitmapFactory解析不同資料來源,獲取Bitmap的常用靜態方法方法如下:

         static Bitmap decodeByteArray(byte[] data,int offset int length):從位元組陣列data中,offset位置開始,將長度為length的直接資料解析成Bitmap物件。

         static Bitmap decodeFile(String pathName):解析pathName路徑指定的檔案,建立Bitmap物件。

        static Bitmap decodeResource(Resources res,int id):根據Drawable資源ID從Android資源中解析建立Bitmap物件。

         static Bitmap decodeStream(InputStream is):從指定輸入流中解析建立Bitmap物件。

   Android為Bitmap提供了兩個方法來判斷Bitmap物件是否已經被回收,以及強制Bitmap回收。

         boolean isRecycled():判斷該Bitmap物件是否被回收

         viod recycle():強制Bitmap物件立即回收自己。

  得到一個螢幕尺寸的三種方法如下:
        // 通過WindowManager獲取

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        // 通過Resources獲取 
        DisplayMetrics dm2 = getResources().getDisplayMetrics();


        // 獲取螢幕的預設解析度
        Display display = getWindowManager().getDefaultDisplay();
        System.out.println("width-display :" + display.getWidth());
        System.out.println("heigth-display :" + display.getHeight());

在安卓4.2系統中,使用方法一得到了正確的螢幕尺寸值,而使用方法二和三得到的值全部為零。原因不祥。其中方法三中的display.getWidth()和display.getHeight()已被棄用。


DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);//display = getWindowManager().getDefaultDisplay();display.getMetrics(dm)(把螢幕尺寸資訊賦值給DisplayMetrics dm);
width = dm.widthPixels;
height = dm.heightPixels;

matrix簡介

對於一個圖片變換的處理,需要Matrix類的支援,它位於"android.graphics.Matrix"包下,是Android提供的一個矩陣工具類,它本身不能對影象或View進行變換,但它可與其它API結合來控制圖形、View的變換,如Canvas。

對於一個從BitmapFactory.decodeXxx()方法解析建立的Bitmap物件而言,它是一個只讀的物件,無法對其進行處理,必須使用Bitmap.createBitmap()方法重新建立一個原Bitmap物件的拷貝,才可以對拷貝的Bitmap進行處理。
因為影象的變換是針對每一個畫素點的,所以有些變換可能發生畫素點的丟失,這裡需要使用Paint.setAnitiAlias(boolean)設定來消除鋸齒,這樣圖片變換後的效果會好很多。
在重新建立一個Bitmap物件的拷貝的時候,需要注意它的寬高,如果設定不妥,很可能變換後的畫素點已經移動到"圖片之外"去了。

Imageview介紹

ImageView提供了多個setImageXxx()的方法,以適應不同來源的圖片資源,這些方法有如下幾個:

void setImageBitmap(Bitmap bm):設定一個Bitmap物件作為ImageView的顯示影象。
  void setImageDrawable(Drawable drawable):設定一個Drawable物件作為ImageView的顯示影象。
  void setImageResource(int resId):設定一個Drawable資源ID作為ImageView的顯示影象。
  void setImageURI(Uri uir):設定一個Uri地址作為ImageView的顯示物件,可以是網路Uri或者本地內容提供者的Uri地址

相關推薦

android瑣碎知識點記載

 一 圖片知識點 當Drawable資源被R.java收錄之後,就可以在XML資原始檔中,通過@drawable/draw_name來訪問該Drawable物件,也可以在Java程式碼中通過R.drawable.drwa_name訪問到該Drawable資源的ID,它是一個

Android一些瑣碎知識點(不定時更新)

一、@id與@+id的區別 @id : 引用現有的資源,類似@string  這樣的做法易於統一管理。     具體用法: <resources> <item name="topview" type="id"/> <item

struts2的瑣碎知識點

default del 方法名 ret action 動作 div println apach servlet:void init(ServletConfig cfg):// 讀取servlet的配置參數void service(ServletRequest request

瑣碎知識點(2)

頁面 查詢 電腦 chrome瀏覽器 webkit ie瀏覽器 工具 做的 -- 1、CSS3中-MS-,-MOZ-,-WEBKIT-,-O-瀏覽器私有前綴詳解 (1)-moz-:代表FireFox瀏覽器私有屬性 (2)-ms-:代表IE瀏覽器私有屬性 (3)-webkit

瑣碎知識點(1)

因此 cli 軟件 是否 inux 喜歡 font sta 如果 1、看懂鏈接 單頁面應用鏈接:https://reactjs.org/docs/react-api.html#createelement (鏈接中有#號) 2、免費的圖片分享網站imgur 網站地址:htt

1.Android基本知識點

tick 動態 nbsp stop 做了 -s order 周期 cti 1、四大組件是什麽與它們的生命周期(及Fragment)。   Activity: 通過Intent來進行通信,intent中包含動作和動作的數據    BroadcastReceive:可以在廣播中

Android常用知識點整理

線性佈局 線性佈局是按照水平方向或者垂直方向依次擺放的佈局方式。下面通過兩個例子,講解線性佈局。 例子1:四方格佈局 1. 確立父佈局 LinearLayout fatherLayout = new LinearLayout(context); fatherLayout.setOri

Android學習知識點整理

1、學習網址 http://hukai.me/android-training-course-in-chinese/basics/firstapp/building-ui.html 2、intent中定義變數的習慣方法: public final static String EXTR

Android常用知識點-[常用備忘,持續更新]

目前包含: 大綱: [自定義view引數] [shape/layer-list/selector] [view與activity生命] [view事件分發與滑動衝突] [ScrollBy與ScrollTo] [scaleType] [Android版本號]&nbs

Android面試知識點彙總

四大元件: Activity: 生命週期: 啟動模式: standard、singleTop、singleTask、singleInstance 任務棧:前臺任務棧、後臺任務棧 TaskAffinity + singleTas

Android部分知識點代碼示例

int pro 動態 cti mit 創建 lin fault nvi 一、ProgressBar <ProgressBar android:id="@+id/progress_bar" android:layout_width="match_parent" an

java學習的一些瑣碎知識點

一、使用泛型的注意事項 1、程式執行時,泛型類是被所有這種類的實現方式所共享的。看案例: List<String> listString =new ArryList<>(); List<Integer> listInt =new Arr

Android基礎知識點彙總

這裡收集了大家常用的一些Android程式碼,持續更新中,內容來自自己的平時積累和網路上看到的文章,部分原文地址在最下方。如有錯誤歡迎指正,如有侵權,請聯絡我刪除。裡面可能會有重複內容,請忽略,有需要的可以fork,fork前別忘了點贊哦 setBackgroun

非常全面的 Android Bitmap 知識點梳理

在日常開發中,可以說和Bitmap低頭不見擡頭見,基本上每個應用都會直接或間接的用到,而這裡面又涉及到大量的相關知識。 所以這裡把Bitmap的常用知識做個梳理,限於經驗和能力,不做太深入的分析。 1 區別decodeResource()和decodeFile()

Android各種知識點最全總結,面試必備

FrameLayout(框架佈局) 此佈局是五中佈局中最簡單的佈局,Android中並沒有對child view的擺佈進行控制,這個佈局中所有的控制元件都會默認出現在檢視的左上角,我們可以使用

Android面試知識點系列】Looper相關

Looper是一個面試中經常被用來問的知識點,我這裡也只是總結一下通過看Looper原始碼可能在面試中問到的知識點,還是推薦大家多看原始碼。 Looper在Handler機制中,就像是一個傳送帶的電動機,它驅動著傳送帶(MessageQueue)不斷

Android面試知識點系列】MessaeQueue相關

MessageQueue也是面試中與Handler、Looper是Handler問題套餐系列之一。那麼究竟它又有什麼潛在的知識點呢?讓我們一起從原始碼出發。 MessageQueue通過什麼方法將Message物件新增進來?在什麼時候執行該操作?

Android 各個知識點整理

這篇部落格留著記錄一些比較深入和思路清晰的大神的文章連結。 也是在一邊學習一邊整理,持續更新中,也在此感謝那些懂得分享的大神們: 7、多點觸控詳解(如何實現) 這個大神寫了一系列的自定義View部落格,從頭跟著學一遍

android 面試知識點

自我介紹: 您好,我是xxx,從事android開發也有好幾年了,總共呆過兩家公司,第一家是xx,幹了1年,在這家公司做過3個專案,剛開始的時候主要寫一些需求文件,用xmind整理專案功能,做一些簡單的介面,大家都知道搞it的技術很重要,所以我在完成自己的工作之餘就經常看其他模組的實現程式碼

即時通訊瑣碎知識點

即時通訊前言基本即時通訊功能(語音聊天,視訊通話)已經實現了,但是一些細節的地方還是需要處理,這篇文章就羅列一些細節點,待我一步步去完善。知識點如何保證伺服器與客戶端一直保持有效連線客戶端由於沒有網路,失去了長連線,伺服器如何知道這種情況而斷開連線?如何知道一個客戶端一直處於