Android 画廊图片应该填满屏幕的宽度
根据可用图片的数量,我使用imageview或Gallery。当只有一张图片可用时,它使用imageview,这就像一个符咒。我使用来自美国的imageloader。这张图片在我的屏幕上全宽 当有多张图片时,我使用一个带有页面指示器的图库。在较小的屏幕上,这很好。但是在平板电脑上,图片并没有填满整个屏幕,这很奇怪,因为单一的imageview可以,而imageloader的工作非常完美。我想这与我的多媒体资料设置有关 图库代码:Android 画廊图片应该填满屏幕的宽度,android,android-layout,imageview,gallery,Android,Android Layout,Imageview,Gallery,根据可用图片的数量,我使用imageview或Gallery。当只有一张图片可用时,它使用imageview,这就像一个符咒。我使用来自美国的imageloader。这张图片在我的屏幕上全宽 当有多张图片时,我使用一个带有页面指示器的图库。在较小的屏幕上,这很好。但是在平板电脑上,图片并没有填满整个屏幕,这很奇怪,因为单一的imageview可以,而imageloader的工作非常完美。我想这与我的多媒体资料设置有关 图库代码: // define pager identifier
// 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();
}
顶部屏幕的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方法以获得更好的fling设置
我应该做些什么来让我的多媒体资料在平板电脑屏幕上也能正常工作?不清楚你的宽度和高度是从哪里来的。。。 我没有平板电脑,但它在我的galaxy note和模拟器上运行良好。根据图像的纵横比,您对高度的计算可能会有所不同 屏幕宽度和屏幕高度包含在适配器的构造函数中: 主要活动
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screen_width = size.x;
screen_height = size.y;
适配器getview
@Override
public View getView(int postion, View view, ViewGroup group)
{
ImageView imageView = new ImageView(_context);
imageView.setImageResource(imageIds[postion]);
imageView.setScaleType(ScaleType.FIT_XY);
imageView.setLayoutParams(new Gallery.LayoutParams(_screen_width, (int) ((double)_screen_height/2.5)));
return imageView;
}
@Override
public View getView(int postion, View view, ViewGroup group)
{
ImageView imageView = new ImageView(_context);
imageView.setImageResource(imageIds[postion]);
imageView.setScaleType(ScaleType.FIT_XY);
imageView.setLayoutParams(new Gallery.LayoutParams(_screen_width, (int) ((double)_screen_height/2.5)));
return imageView;
}