2

以下のリンクカルーセル デモ ソース コード リンクで、サンプル Android カルーセル デモ ソース コードをダウンロードしました。

私の疑問は、画像を追加する場合、画像のギャップが非常に小さいため、画像スペースを増やす方法と、もう1つの疑いがある下部画像の反射が非表示になり、下部反射画像を取得する方法です.....

これは私のxmlソースです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:pj="http://schemas.android.com/apk/res/com.carouseldemo.main"
    xmlns:bm="com.carouseldemo.main"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout
        android:layout_weight="0.5"
        android:padding="5dip"
        android:gravity="top"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        >
            <com.carouseldemo.controls.Carousel
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/carousel"  
                pj:UseReflection="true"
                pj:Items="@array/entries"
                pj:SelectedItem="0"
                android:animationDuration="200"
            />      
    </LinearLayout>     
</LinearLayout>

私のスクリーンショットをご覧ください:

ここに画像の説明を入力

4

3 に答える 3

3

の計算にCalculate3DPositionNEW の使用を含めるようにコードを変更しました。verticalStretchFactory

3D 位置の計算

 float y = -getHeight()/2f + (float) (diameter/mVerticalStretchFactor * z * android.util.FloatMath.sin(mTheta));

この新しい属性パラメーターをコントロールの属性に追加しました。標準の Droid Phone ディスプレイでは、140f 程度の係数がうまく機能し、リスト内の項目間の垂直方向の間隔が広くなることがわかりました。コントロールをホーム メニュー コントロールとして使用していましたが、リストには 5 ~ 6 個の項目しかありませんでした。

于 2012-12-03T23:45:13.020 に答える
2

Carousel.javaファイルで定義する必要があります。で以下の機能を確認してください

src/com/carouseldemo/controls/Carousel.java

getChildStaticTransformation  
makeAndAddView  
setUpChild  
Calculate3DPosition 
于 2012-05-04T13:23:54.590 に答える
1

ご回答いただきありがとうございます。特に Sen ,lepert ..大きな画像でのクリックの誤った選択の問題を修正しました。ユーザーが画像をそのままにしておく必要があるが、問題がまだ残っている場合、あなたのソリューションは非常に役立ちます。

上記の Balaji によるサンプル画像のように、スピナー画像を元のままにする必要がある場合は、Sen と lepert のソリューションを使用してください。

そして、メインの画像の下に画像を作成し、クリック/選択を正しく取得したい場合は、以下に示すようにコードを変更してください..これは私にとってはうまくいきます..

で変更

上記のソリューションで指定されたコードを変更する必要はありません。

交換

Collections.sort(fitting);

        if(fitting.size() != 0)
            return fitting.get(0).getIndex();
        else
            return mSelectedPosition;

Collections.sort(fitting);

if(fitting.size() != 0){
    if(fitting.size()>1){
        return fitting.get((fitting.size()-1)).getIndex();
    }else{
        return fitting.get(0).getIndex();   
    }


}
else{
    return mSelectedPosition;
}
于 2013-05-24T07:30:12.333 に答える