編輯:關於Android編程
本章使用GridView控件來做一個相冊效果。
圖片效果如下:
響應點擊事件,點擊的時候提示是當前第幾章圖片,從左到右,從上到下。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20141121/2014112109063096.jpg" width="150" height="230" alt="\">
點擊了第一張圖片,顯示了1.
步驟:
一 新建項目,然後把圖片資源拷貝到res/drawable/文件夾中,如果沒有drawable這個文件夾也不要緊,可以直接新建這個文件夾,然後在Eclipse項目中刷新,就會在項目中顯示出來了
二 然後在Layout的界面xml文件activity_main.xml(當然也可以隨意自己喜歡命名),輸入如下代碼:
沒什麼特別的,就是設置好行寬,然後自動排好行數numColumns="auto_fit",這個好像是Android自動排列的。
三 activity_main.xml對應的java文件MainActivity.java輸入邏輯代碼,主要是修改onCreate這個函數就可以了,其他就默認可以了,不用管:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView> parent, View v, int position, long id) { Toast.makeText(MainActivity.this, "" + (position+1), Toast.LENGTH_SHORT).show(); } }); }
小技巧:
不知道對象屬於那些頭文件?例如OnItemClickListener是屬於什麼文件庫啊?
這個有時候是個頭疼的問題,尤其是使用VC寫C++的時候,需要自己動手去查,頭疼的是,查到了這個函數,或者類之後,居然沒提示需要include什麼頭文件,不過到了Java,似乎那都不是事了,一個快捷鍵搞定了:ctrl+shift+o;那麼就會全自動包括所有需要的庫了。
四 之後創建一個Java類,放在MainActivity.java一個目錄下,然後添加代碼:
package su.gridview.hellogridview; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } // create a new ImageView for each item referenced by the Adapter public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some // attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mThumbIds[position]); return imageView; } // references to our images private Integer[] mThumbIds = { R.drawable.x0, R.drawable.x1, R.drawable.x2, R.drawable.x3, R.drawable.x4, R.drawable.x5, R.drawable.x10, R.drawable.x9, R.drawable.x8, R.drawable.x7, R.drawable.x6, R.drawable.x5, R.drawable.x11, R.drawable.x20, R.drawable.x13, R.drawable.x14, R.drawable.x15, R.drawable.x16, R.drawable.x17, R.drawable.x18, R.drawable.x19, R.drawable.x20 }; }本例沒用的函數都是因為必須需要復寫BaseAdapter類的。
主要使用了getCount和getView這兩個函數。按照他的樣式實現就可以了,具體的低層工作就是由Adapter類自動調用的,調用getCount,Adapter就知道有多少資源對象需要顯示了,調用getView就可以把圖片資源顯示出來,其中傳入convertView是為了加速,復用之前用過的View。
這個是我的理解,更加詳細的原理還有待有空參考一下源代碼吧。
參考資料:http://developer.android.com/guide/topics/ui/layout/gridview.html
第二章完成,感覺Android寫程序實在是太方便了,難怪Android大行其道啊,對比一個DirectX這些API的用法,簡直就是傻瓜式的。尤其令我想起之前使用Direct2D,微軟真的傻了,都什麼年頭了,居然還出Direct2D這麼難用的API。呵呵,別說我黑微軟;最近聽說VC居然要支持Android了,感覺微軟是低下了高貴的頭了,支持了競爭對手的東西;同時也想趕上Android的步伐,不是犧牲色相啊。戰略需要,是應該低下頭的。
最近的一些學習心得:功能實現:點擊圓形頭像之後可以實現相冊上傳或者開啟相機,然後把得到的圖片經過剪裁,把剪裁過的圖片設置為頭像的背景圖步驟:第一步:自定義一個類,繼承Im
Device Administration對於這個應用,市場上很多,但是看一下評論就知道效果有多差了,因為99%一鍵鎖屏應用沒辦法卸載。今天就開發一個小應用,實現輕松點擊
最近總感覺寫博客的激情不高,不知道為啥。放上效果圖,demo在最下面圖上那個切換按鈕的作用呢,就是模擬改變標簽的個數動態變化整個控件的高度。其實這個控件也算很簡單的控件了
本文實例講述了Android使用Sensor感應器獲取用戶移動方向的方法。分享給大家供大家參考,具體如下:今天繼續給大家分享一下第二個重要的感應器,其實獲取方向本應該很簡