MainActivty.java
[java]
view plaincopyprint?
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- // ...省略的代碼
- /**
- * 設定滾動到指定項的方法
- */
- scView = (HorizontalScrollView)
- findViewById(R.id.galleryScroll);
- scView.post(new Runnable()
- {
- @Override
- public void run()
- {
- scView.scrollTo(DisplayUtil.dip2px(AlbumUI.this, 95 * index), 0); // 將dp轉換成px解析度
- }
- });
-
- albumGallery.setOnItemClickListener(new OnItemClickListener()
- {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id)
- {
- albumAdapter.changeStatus(position); // 改變狀態
- albumAdapter.notifyDataSetChanged(); // 通知CustomAdapter資料有更改,並更新資料
- }
- });
-
- albumGallery.setOnTouchListener(new OnTouchListener()
- {
- @Override
- public boolean onTouch(View v, MotionEvent event)
- {
- v.clearFocus();
- return false;
- }
- });
- // ...省略的代碼
- }
@Overridepublic void onCreate(Bundle savedInstanceState){// ...省略的代碼/** * 設定滾動到指定項的方法 */scView = (HorizontalScrollView) findViewById(R.id.galleryScroll);scView.post(new Runnable(){@Overridepublic void run() {scView.scrollTo(DisplayUtil.dip2px(AlbumUI.this, 95 * index), 0);// 將dp轉換成px解析度}}); albumGallery.setOnItemClickListener(new OnItemClickListener(){ @Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {albumAdapter.changeStatus(position);// 改變狀態albumAdapter.notifyDataSetChanged();// 通知CustomAdapter資料有更改,並更新資料}}); albumGallery.setOnTouchListener(new OnTouchListener() { @Overridepublic boolean onTouch(View v, MotionEvent event){v.clearFocus();return false;}});// ...省略的代碼}
CustomAdapter.java
[java]
view plaincopyprint?
- @Override
- public View getView(int position, View convertView, ViewGroup parent)
- {
- // ...省略的代碼
- // 此條件陳述式只運行一次,作用是預設哪項被選中
- if (flag == true)
- {
- changeStatus(index);
- flag = false;
- }
-
- if (aItem.isSelect())
- {
- widget.photoFrameImg.setBackgroundResource(R.drawable.selected);
- }
- else
- {
- widget.photoFrameImg.setBackgroundDrawable(null);
- }
- // ...省略的代碼
- }
@Overridepublic View getView(int position, View convertView, ViewGroup parent){ // ...省略的代碼 // 此條件陳述式只運行一次,作用是預設哪項被選中if (flag == true){changeStatus(index);flag = false;}if (aItem.isSelect()){ widget.photoFrameImg.setBackgroundResource(R.drawable.selected); }else {widget.photoFrameImg.setBackgroundDrawable(null); } // ...省略的代碼}
[java]
view plaincopyprint?
- /**
- * 改變選擇狀態的方法
- */
- public void changeStatus(int select)
- {
- for (int i=0; i<list.size(); i++)
- {
- list.get(i).setSelect(false);
- }
-
- list.get(select).setSelect(true);
- }
/** * 改變選擇狀態的方法 */public void changeStatus(int select){ for (int i=0; i<list.size(); i++){ list.get(i).setSelect(false); } list.get(select).setSelect(true);}
ConvertResolutionTools.java,如果你有需要的話。
[java]
view plaincopyprint?
- /**
- * 根據手機的解析度從 dp 的單位 轉成為 px(像素)
- */
- public static int dip2px(Context context, float dpValue)
- {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int) (dpValue * scale + 0.5f);
- }