사용 가능한 사진 수에 따라 이미지 뷰 또는 갤러리를 사용합니다. 사용할 수있는 사진이 하나 뿐인 경우 이미지 뷰를 사용하고 매력처럼 작동합니다. u niversalloader에서 imageloader를 사용합니다. 그림이 전체 화면 너비의 화면 상단에 있습니다.갤러리 이미지는 화면 너비를 채워야합니다.
사진이 여러 개인 경우 갤러리를 사용하며 페이지 표시기를 사용합니다. 작은 화면에서는 정상적으로 작동합니다. 그러나 태블릿에서는 그림이 전체 화면을 채우지 않습니다. 단일 이미지 뷰가 수행하기 때문에 이상합니다. imageloader는 작업을 완벽하게 처리합니다. 내 갤러리 설정과 관련이 있다고 생각합니다. 갤러리에 대한
코드 :
// define pager identifier
pager = (LinearLayout)findViewById(R.id.pager);
pagerdot1 =(ImageView)pager.findViewById(R.id.pager_dot_1);
pagerdot2 =(ImageView)pager.findViewById(R.id.pager_dot_2);
pagerdot3 =(ImageView)pager.findViewById(R.id.pager_dot_3);
venueImage = (ImageView)findViewById(R.id.venueImage);
venueGallery = (CustomGallery)findViewById(R.id.GVvenueImage);
imageLoader=new LargerImageLoader(this.getApplicationContext());
if(venue.photos.size()>1){//multiple photos --> gallery
if(venue.photos.size()==2){
pagerdot3.setVisibility(View.GONE);
}
venueGallery.setVisibility(View.VISIBLE);
venueImage.setVisibility(View.GONE);
String[] fotos = new String[venue.photos.size()];
for(int i=0;i<venue.photos.size();i++){
if(venue.photos.get(i).large !=null){
fotos[i] = venue.photos.get(i).large;
System.out.println(venue.photos.get(i).large);
}
}
ImagePagerAdapter galleryad = new ImagePagerAdapter(fotos);
venueGallery.setAdapter(galleryad);
venueGallery.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) {
switch(position) {
case 0:
pagerdot1.setImageResource(R.drawable.pager_oranje);
pagerdot2.setImageResource(R.drawable.pager_wit);
pagerdot3.setImageResource(R.drawable.pager_wit);
break;
case 1:
pagerdot2.setImageResource(R.drawable.pager_oranje);
pagerdot1.setImageResource(R.drawable.pager_wit);
pagerdot3.setImageResource(R.drawable.pager_wit);
break;
case 2:
pagerdot3.setImageResource(R.drawable.pager_oranje);
pagerdot2.setImageResource(R.drawable.pager_wit);
pagerdot1.setImageResource(R.drawable.pager_wit);
break;
default:
pagerdot1.setImageResource(R.drawable.pager_oranje);
pagerdot2.setImageResource(R.drawable.pager_wit);
pagerdot3.setImageResource(R.drawable.pager_wit);
}
}
@Override
public void onNothingSelected(AdapterView<?> adapter) {
}
});
}else if(venue.photos.size() ==1){ //1 foto
if(venue.photos.get(0).large != null){
venueGallery.setVisibility(View.GONE);
venueImage.setVisibility(View.VISIBLE);
imageLoader.DisplayImage(venue.photos.get(0).large, venueImage);
} else{
setStandardPic();
}
pager.setVisibility(View.GONE);
//
} else{
setStandardPic();
}
와 가진 : 화면 상단의
private class ImagePagerAdapter extends BaseAdapter {
private String[] images;
private LayoutInflater inflater;
ImagePagerAdapter(String[] images) {
this.images = images;
inflater = getLayoutInflater();
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;
RelativeLayout borderImg;
if (convertView == null) {
imageView = new ImageView(getBaseContext());
imageView.setLayoutParams(new LayoutParams(width,height)); // size
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setPadding(0,0,0,0);
imageView = (ImageView) inflater.inflate(R.layout.item_gallery_image, parent, false);
borderImg = new RelativeLayout(getBaseContext());
borderImg.setPadding(0,0,0,0);
borderImg.setBackgroundColor(Color.TRANSPARENT); // no color
}else {
imageView = (ImageView) convertView;
borderImg = (RelativeLayout) convertView;
}
imageLoader.DisplayImage(images[position], imageView);
borderImg.addView(imageView);
return borderImg;
}
}
XML :
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/venueImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:fadingEdge="none"
android:scaleType="centerCrop"
android:src="@drawable/header_food" />
<com.hera.ontdekdelft.lazyloader.CustomGallery
android:id="@+id/GVvenueImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:fadingEdge="none"
android:scaleType="centerCrop"
android:visibility="gone" />
<ImageView
android:id="@+id/venueCategoryImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/venuecategory_sights" />
<include
android:id="@+id/pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
layout="@layout/gallery_pager" />
</RelativeLayout>
내 사용자 정의 갤러리가 onFling 방법 그냥 보통의 갤러리입니다 더 나은 집게 설정을 재정의하십시오.
태블릿 화면에서도 내 갤러리가 작동하도록 변경해야하는 항목은 무엇입니까?