web-dev-qa-db-ja.com

ViewPagerIndicatorをAndroid Studioに追加します

jake WhartonのViewPagerIndicatorをAndroid Studioで動作させようとしていますが、残念ながら動作しません。
。aarファイルを here からダウンロードし、libsフォルダーに含めました。
次のように参照しました。

compile files('src/main/libs/viewpagerindicator_2.4.1.aar')

Android Studioでは次のエラーが表示されます。

Error:duplicate files during packaging of APK

私はgradleにあまり精通しておらず、このエラーが発生したときに何をすべきかわかりません。
これを手伝ってくれませんか?

完全なbuild.gradleは次のとおりです。

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "de.xxx"
        minSdkVersion 15
        targetSdkVersion 19
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }

    buildTypes {
     release {
     runProguard false
     proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
    }
    }
}

dependencies {
    compile 'com.Android.support:support-v4:20.0.0'
    compile 'com.github.amlcurran.showcaseview:library:5.0.0'
    compile files('src/main/libs/PdfViewer.jar')
    compile files('src/main/libs/viewpagerindicator_2.4.1.aar')
}
28

[〜#〜] update [〜#〜]

Jürgen 'Kashban' Wahlmannによる回答 に基づいて、Gradleを介してViewPagerIndicatorを追加することが可能になりました。

トップレベルBuild.gradle:

buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
    }
}

アプリのbuild.gradle:

compile 'com.viewpagerindicator:library:2.4.1@aar'

また、 Enrico Susatyoによる回答 に基づいて、ライブラリをJitpack Mavenリポジトリからダウンロードできるようになりました。次のようにしてください:

ルートbuild.gradeで:

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

プロジェクトbuild.gradeで:

dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
    }

------------

Android-ViewPagerIndicatorをAndroid Studioで使用するには、gradleからダウンロードできません。代わりに、現在のライブラリに「既存のプロジェクト」としてライブラリをインポートする必要があります。

次の手順を実行します:

#1 ソースコード GitHubからダウンロードします。

#2 Android Studio Project:File-> Project Structure-> add(+ symbol)-> Import Existing Project。プロジェクト全体ではなく、 "library"というフォルダーのみをインポートします(leave Android Studioが提案する)としてのインポートオプション。

#3 build.gradleで指定された「compileSdkVersion」がAndroid-ViewPagerIndicatorプロジェクトで指定された「compileSdkVersion」と一致しない場合は、2番目のものを変更します。 「minSdkVersion」や現在のサポートライブラリなど、他のプロパティにも同じことが当てはまります。

#4 build.gradleモジュールへの依存関係としてAndroid-ViewPagerIndicatorプロジェクトを追加します。

dependencies {
    compile project(':library')
}

#5プロジェクトをgradleファイルと同期します。

73

次のようにGradleでインポートできます:

トップレベルBuild.gradle:

buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.12.+'
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
    }
}

アプリのbuild.gradleで、これを依存関係セクションに追加します。

compile 'com.viewpagerindicator:library:2.4.1@aar'

(@aprを追加して、「apklibのパッケージはサポートされていません」というエラーを回避します)

私にとってはうまくいきます。

今日(2016年3月)、JitpackのMavenリポジトリは私のために動作します: https://jitpack.io/#JakeWharton/ViewPagerIndicator/2.4.1/aar

ルートでbuild.gradle

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

プロジェクト内build.gradle

dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
    }
44
Enrico Susatyo

サードパーティのライブラリなしでそれを行うことができます

最終結果:

enter image description here

1)Viewpagerのコンテナとしてフレームレイアウトを使用し、その下にLinearlayoutを追加します。

<FrameLayout
                Android:layout_width="match_parent"
                Android:layout_height="match_parent"
                Android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax">

                <Android.support.v4.view.ViewPager
                    Android:id="@+id/product_images_pager"
                    Android:layout_width="match_parent"
                    Android:layout_height="match_parent" />

                <HorizontalScrollView
                    Android:layout_width="match_parent"
                    Android:layout_height="20dp"
                    Android:layout_gravity="bottom|center_horizontal"
                    Android:layout_margin="10dp">

                    <LinearLayout
                        Android:id="@+id/indicator_root"
                        Android:layout_width="20dp"
                        Android:layout_height="match_parent"
                        Android:layout_gravity="bottom|center_horizontal"
                        Android:gravity="center_horizontal"
                        Android:orientation="horizontal">

                    </LinearLayout>
                </HorizontalScrollView>

            </FrameLayout>

2)インジケーターのサイズとマージンを定義する

  //define globaly 
   private LinearLayout.LayoutParams imageParam;

   //init params
      int margin = Utils.pxFromDp(getActivity(), 5);
        int width = Utils.pxFromDp(getActivity(), 8);
        imageParam = new LinearLayout.LayoutParams(width, width);
        imageParam.setMargins(margin, margin, margin, margin);

3)線形レイアウトでインジケーターを追加する

 for (int indicatorCount = 0; indicatorCount < productFromShoppingList.getProductImages().size();
             indicatorCount++) {

            ImageView imageIndicator =
                    new ImageView(getActivity());

            imageIndicator.setAdjustViewBounds(true);
            imageIndicator.setScaleType(ImageView.ScaleType.FIT_XY);
            imageIndicator.setLayoutParams(imageParam);

            indicatorContainer.addView(imageIndicator);
            indicators.add(imageIndicator);
            imageIndicator.setBackgroundResource(R.drawable.indicator_unselected);
        }

4)インジケータを0位置で初期化する

 indicators.get(0).setBackgroundResource(R.drawable.indicator_unselected);

5)ページャーページの変更のインジケーターを更新する

carousalViewPager.setAdapter(new slidingPagerAdapter(getActivity(),
            productFromShoppingList.getProductImages()));

    carousalViewPager
            .addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int position,
                                           float positionOffset, int positionOffsetPixels) {

                }

                @Override
                public void onPageSelected(int position) {

                    currentPageIndex = position;
                    updateIndicators(currentPageIndex);
                }

                @Override
                public void onPageScrollStateChanged(int state) {

                }
            });


private void updateIndicators(int selectedPostion) {
    for (int indicatorPosition = 0; indicatorPosition < indicators.size(); indicatorPosition++) {
        indicators.get(indicatorPosition).setBackgroundResource(indicatorPosition == selectedPostion ? R.drawable.indicator_selected
                : R.drawable.indicator_unselected);
    }
}

最後に、インジケーターにこの2つのドロウアブルを追加します

indicator_unselected.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">
    <stroke
        Android:width="1dp"
        Android:color="@color/white" />
</shape>

indicator_selected.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">
    <corners Android:radius="100dp" />
    <solid Android:color="@Android:color/white" />
</shape>
0
Hitesh Sahu

Mavenから統合しようとしてもうまくいきませんでした。私は常に次のビルド例外に行き、スタイルを再設定できませんでした:

指定された名前vpiCirclePageIndicatorStyle vpiTitlePageIndicatorStyleに一致するリソースが見つかりません

Jitpackを介して依存関係を追加することは完璧に機能します。

ルートでbuild.gradle

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

プロジェクト内build.gradle

dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
    }
0
cV2