MainActivty.java
- @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;
- }
- });
- // ...省略的代码
- }
@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;
}
});
// ...省略的代码
}
CustomAdapter.java
- @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);
- }
- // ...省略的代码
- }
@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);
}
// ...省略的代码
}
- /**
- * 改变选择状态的方法
- */
- 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,如果你有需要的话。
- /**
- * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
- */
- public static int dip2px(Context context, float dpValue)
- {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int) (dpValue * scale + 0.5f);
- }