2

カルーセル効果を使用して表示される画像がいくつかあります。

コードは次のとおりです。

** carousel_main.xml **

    <com.digitalaria.gama.carousel.Carousel
        android:id="@+id/carousel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>    

</LinearLayout>

** carousel_item.xml **

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

    <ImageView 
        android:id="@+id/itemImage" 
        android:layout_width="match_parent"    
        android:layout_height="match_parent" />

</FrameLayout>

Java ファイル:

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.carousel_main);

    init();
    }

private void init() {
// create the carousel object.
carousel = (Carousel) findViewById(R.id.carousel);

// configurations for the carousel.
carousel.setType(Carousel.TYPE_COVERFLOW);
carousel.setOverScrollBounceEnabled(true);
carousel.setInfiniteScrollEnabled(false);
carousel.setItemRearrangeEnabled(true);

// set images for the carousel.
adapter = new ImageAdapter(this);
carousel.setAdapter(adapter);

// change the first selected position.
carousel.setCenterPosition(3);
}
public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    @Override
    public int getCount() {
        return musicCover.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return musicCover[position];
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
        view = LayoutInflater.from(mContext).inflate(R.layout.carousel_item, parent, false);
        view.setLayoutParams(new Carousel.LayoutParams(450, 450));

        ViewHolder holder = new ViewHolder();
        holder.imageView = (ImageView) view.findViewById(R.id.itemImage);

        view.setTag(holder);
        }

        ViewHolder holder = (ViewHolder) view.getTag();
        holder.imageView.setImageResource(musicCover[position]);

        return view;
    }

    private class ViewHolder {
        ImageView imageView;
    }
    }

ここに画像の説明を入力

画像では、左、中央、右の間に多くのスペースがあることがわかります (黒いスペース)。

何が起こっているかというと、のサイズview.setLayoutParams(new Carousel.LayoutParams(450, 450)); を 600,600 に増やすと、左右のアイテムが表示されなくなります。

これを解決するには?

4

0 に答える 0