Facebook에서 가져온 사진이 포함 된 3 열과 여러 행이있는 GridView 레이아웃이 있습니다. 이미지를 선택하면 해당 항목에 대한 선택기가 gridView에 나타납니다. (나는 안드로이드 선택기를 사용하지 않지만 아래에 링크되어있는 맞춤 레이아웃을 사용하지 않습니다.)Android GridView 항목 선택기가 위치를 변경하고 복제합니다.
하나 이상의 항목을 선택하면 더 많은 사진을보기 위해 화면을 스크롤 할 때 다른 항목이 있음을 발견했습니다. 이미 선정되었습니다! 또한 이전에 선택한 항목을 보려고 스크롤하면 선택자의 위치가 바뀝니다. 그것은 내가 각 화면의 스크롤 할 때마다 각 선택기의 색인을 업데이 트하는 것 같습니다.
페이스 북에서 사진을 팽창시키기 위해 개인용 ImageAdapter를 만들었습니다. 여기 의 getView : 여기
public View getView(final int position, View convertView, ViewGroup parent) {
View v;
ImageView imageView = null;
if(convertView==null){
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.photos_item, null);
}else{
v = convertView;
}
imageView = (ImageView)v.findViewById(R.id.image);
v.setTag(imageView);
if (arrayPhotos.get(position).getPictureSource() != null){
Log.i(TAG, "Position in GridView = " + Integer.valueOf(position).toString());
imageLoader.DisplayImage(arrayPhotos.get(position).getPictureSource(), imageView);
}
return v;
}
onItemClick :
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:numColumns="auto_fit"
android:columnWidth="96dp"
android:stretchMode="spacingWidth"
android:horizontalSpacing="8dp"
android:verticalSpacing="8dp"
android:paddingTop="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp" >
</GridView>
그리고이은 XML 다음의 GridView의 XML이
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
View checkedItem;
checkedItem = (View) view.findViewById(R.id.check);
fbPicture = arrayFbPictures.get(position);
Log.i(TAG, "Position = " + arrayFbPictures.indexOf(fbPicture));
Log.i(TAG, "PicId = " + fbPicture.getPictureID());
if(fbPicture.isChoosed()){
Log.i(TAG, "checkIcon DISACTIVATED");
fbPicture.setChoosed(false);
checkedItem.setVisibility(View.INVISIBLE);
parent.invalidate();
}
else{
Log.i(TAG, "checkIcon ACTIVATED");
fbPicture.setChoosed(true);
checkedItem.setVisibility(View.VISIBLE);
parent.invalidate();
}
}
맞춤 선택 도구 :
<RelativeLayout
android:id="@+id/check"
android:layout_width="96dp"
android:layout_height="96dp"
android:background="@color/black_trasparency_light"
android:visibility="invisible" >
<ImageView
android:id="@+id/image_check"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:scaleType="center"
android:src="@drawable/ic_check_colored_48" />
</RelativeLayout>
고맙습니다.
작동합니다! 고맙습니다 : D 나는 그것에 하루를 보냈습니다 : D – giangiska