background preloader

Android Development Tutorial

Facebook Twitter

Android下图片变圆角的代码封装,Java代码片段分享, - 脚本分享网. Listview getViewType() and getViewTypeCount() in Action. This is an article on listview with different view’s.

Listview getViewType() and getViewTypeCount() in Action

We all know that listview is the most used and conventional way of displaying list of data in android. Many-a-times we do encounter a scenario where we want to display list item depending on a specific condition for example have a look at the images below. Row type one Row type two Row type three ListView The common way of displaying such a data is to inflate one row and depending on the condition you may hide or make a view visible. Toggling a view between VIEW.GONE and VIEW.VISIBLE can be a very expensive task inside the getview(..) which will sure affect the list scroll. So to begin with you need to create separate layouts for each type of view that will be displayed. To put all this into action i have created a demo project which can be downloaded here.

In this project i ‘ m showing 3 different types of row in a listview: 1. 2. 3. So first create 3 different xmls for different row type. view_row_type_one.xml (for text layout) Like this: [Android]加載圖片導致內存溢出(Out of Memory 異常) 方案一、讀取圖片時注意方法的調用,適當壓縮 儘量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource來設置一張大圖,因為這些函數在完成decode後,最終都是通過java層的createBitmap來完成的,需要消耗更多記憶體。

[Android]加載圖片導致內存溢出(Out of Memory 異常)

因此,改用先通過BitmapFactory.decodeStream方法,創建出一個bitmap,再將其設為ImageView的 source,decodeStream最大的秘密在於其直接調用JNI>>nativeDecodeAsset()來完成decode,無需再使用java層的createBitmap,從而節省了java層的空間。 InputStream is = this.getResources().openRawResource(R.drawable.pic1); BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = false; options.inSampleSize = 10; // width,height設為原來的十分一 Bitmap btp = BitmapFactory.decodeStream(is, null, options); 如果在讀取時加上圖片的Config參數,可以跟有效減少載入的記憶體,從而跟有效阻止拋out of Memory異常。 /*讀取本地資源的圖片*/ public static Bitmap readBitMap(Context context, int resId){ Android - Set permission for getting User's email ID from Facebook Login. 【新提醒】Android 新手入门popupWindow实现左侧弹出菜单层 - juapk做最棒的Android软件开发交流社区.

Android中PopupWindow显示在指定位置_泡在网上的日子-提供互联网前沿咨询,聚焦web开发与探索. Android動態ui介面設計. Android的螢幕旋轉事件 - 防止Activity重建. 163.17.20.188/AEIT2008/manager/acad/file/file_2.pdf. Android GridView and ListView 非同步圖片讀取 @ 隨手筆記. 如何改善Bitmap所帶來的Out of Memory(OOM)問題. 我們很常使用Bitmap來存放圖片,但是常常因為檔案太大, 一不小心就跳出Out of Memory(OOM)的訊息, 對於這樣的訊息, 到目前為止, 在網路上還沒看到一個徹底解決的辦法, 大部分都是對記憶體作管理, 所以我們來討論一下目前的幾個方法。

如何改善Bitmap所帶來的Out of Memory(OOM)問題

為什麼會產生OOM的問題呢? 原因就出在Android的限制, Android是跑在手機上的作業系統, 因此我們手機上的記憶體就不可能像PC上面的記憶體一樣, 想擴增就擴增, 因此每一點一滴的記憶體我們都必須斤斤計較, 而Android的限制就是當你超過16MB的檔案, 它就會跳出OOM的警告視窗, 警告你不能使用這麼大的檔案。 從這個角度來想, 我們就有幾個思考的方向, 1.從圖檔著手。 2.從程式碼著手。 第一點沒什麼好說的, 如果你想要下載大圖到手機上或者平板上, 通常是沒什麼必要的, 畢竟人的眼睛對於解析度高跟解析度普通的圖片, 看不出太大的差別, 所以建議最好不要找那麼大的解析度。 所以我們就單純討論第二點, 引述這裡的方法 解決方式大概有以下幾種: 1.使用 BitmapFactory.decodeStream() 產生Bitmap 2.設定 BitmapFactory.Options inSampleSize, (inSampleSize值越大解析度越小,佔用memory也越小) 3.在 onPause/onStop/onDestory 時,將沒用到的Bitmap release(用recyle()) 根據第一點 我們可以這樣寫, public Bitmap getLocalBitmap(Context con, int resourceId){ InputStream inputStream = con.getResources().openRawResource(resourceId); return BitmapFactory.decodeStream(inputStream, null, getBitmapOptions()); } 當你傳入一個Resource id的時候, 利用context的方法把它轉成串流, 就可以使用BitmapFactory.decodeStream這個方法, 為什麼要使用這個方法來改善呢? 因此我們用這樣的方法來讀取專案內的圖檔應該是最恰當的。 通知一下系統, 該回收了喔! 寫法大概像這樣. Rogerdudler/eclipse-ui-themes. 淺談 PHP-MySQL, PHP-MySQLi, PDO 的差異. PHP-MySQL 是 PHP 操作 MySQL 資料庫最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相對進階的功能,就 Extension 而言,本身也增加了安全性。

淺談 PHP-MySQL, PHP-MySQLi, PDO 的差異

而 PDO (PHP Data Object) 則是提供了一個 Abstraction Layer 來操作資料庫,用講的其實看不出來有有什麼差別,所以就直接看程式吧… 首先,先來看一段用 PHP-MySQL 寫成的程式碼,這類的範例常用在世界各地: 乍看之下沒什麼問題,但其實背後有些學問… 這種方式不能 Bind Column ,以前例的 SQL 敘述來說,$location 的地方容易被 SQL Injection。 後來於是發展出了 mysql_escape_string() (備註:5.3.0之後棄用) 以及 mysql_real_escape_string() 來解決這個問題,不過這麼一搞,整個敘述會變得複雜且醜陋,而且如果欄位多了,可以想見會是怎樣的情形… 在 PHP-MySQLi 中有了不少進步,除了透過 Bind Column 來解決上述問題,而且也多援 Transaction, Multi Query ,並且同時提供了 Object oriented style (下面這段 PHP-MySQLi 範例的寫法) 和 Procedural style (上面 PHP-MySQL 範例的寫法)兩種寫法…等等。 <? 但看到這邊又發現了一些缺點,例如得 Bind Result,這個就有點多餘,不過這其實無關緊要,因為最大的問題還是在於這不是一個抽象(Abstraction)的方法,所以當後端更換資料庫的時候,就是痛苦的開始… 於是 PDO 就出現了,將 PDO 安裝裝好後,就可以透過以下方式來操作資料庫: <?

PHP

ListView. 實現編輯文字(EditText)的清除按鈕. 如何掌握 Thread. Storage. MediaRecorder. SQLite. UI. Web. Eclipse. Camera. MAP. Image.