- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在android中开发一个步数ViewPager Indicator。当用户处于第一步时,指示器将如下所示。
当他走到最后一步时,应该是这样的。
因此,当我在 ViewPager 中前进时,我希望步数一次前进一步,以突出显示步数和连接它们的线。
编辑:
我试过的指标布局代码如下。我以编程方式更改页面幻灯片上图像的可绘制对象。但问题是如何创建连接两个步骤的线并增加页面幻灯片的进度?有可用的图书馆吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/img_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/cb1"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img_two"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/cb2"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img_three"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/cb3"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img_four"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/cb4"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img_five"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/cb5"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img_six"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/cb6"
android:layout_weight="1"
/>
请帮忙。谢谢。
最佳答案
IN Xml 试试这段代码..
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_dark"
android:fitsSystemWindows="true"
tools:context="com.layer_net.stepindicatorexample.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp">
<FrameLayout
android:layout_width="200dp"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="left|center"
android:src="@drawable/dot_white" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="center"
android:src="@drawable/dot_white" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="right|center"
android:src="@drawable/dot_white" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<ProgressBar
android:id="@+id/bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:indeterminate="false"
android:max="100"
android:maxHeight="5dip"
android:minHeight="5dip"
android:progressDrawable="@drawable/greenprogress" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<ProgressBar
android:id="@+id/bar2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:indeterminate="false"
android:max="100"
android:maxHeight="5dip"
android:minHeight="5dip"
android:progressDrawable="@drawable/second_progress_bar" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="left|center"
android:padding="0.5dp"
android:src="@drawable/dot_orange" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/second_dot"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="center"
android:padding="0.5dp"
android:src="@drawable/dot_white" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:id="@+id/third_dot"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="right|center"
android:padding="0.5dp"
android:src="@drawable/dot_white" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
在 Activity View Pager 中试试这个:-
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
int round = Math.round(positionOffset * 100);
Log.e("positionOffset", ">>" + position);
int progress = round;
if (position == 0) {
progressBar.setProgress(progress);
if(progressBar.getProgress()<95){
second_dot.setImageResource(R.drawable.dot_white);
}
} else if(position==1) {
second_dot.setImageResource(R.drawable.red_dot);
bar2.setProgress(progress);
if(bar2.getProgress()<95){
third_dot.setImageResource(R.drawable.dot_white);
}
}
else if(position==2){
third_dot.setImageResource(R.drawable.blue_dot);
}
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Drawable greenprogress.xml code :-
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/progress"
android:drawable="@drawable/line_12" />
<item android:id="@android:id/background"
>
<shape>
<solid android:color="#fff" />
<stroke
android:width="0.5px"
android:color="#fff" />
<corners android:radius="5dp" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<stroke
android:width="0.5px"
android:color="#fff" />
<corners android:radius="5dp" />
<gradient
android:endColor="#c3464e"
android:startColor="#ffa200" />
</shape>
</clip>
</item>
</layer-list>
second_progress_bar.xml 代码:-
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/progress"
android:drawable="@drawable/line_12"/>
<item android:id="@android:id/background"
>
<shape >
<solid android:color="#fff"/>
<stroke android:width="0.5px"
android:color="#fff"
/>
<corners android:radius="5dp"/>
</shape>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
<stroke android:width="0.5px"
android:color="#fff"
/>
<corners android:radius="5dp"/>
<gradient
android:startColor="#c3464e"
android:endColor="#38a0da"
/>
</shape>
</clip>
</item>
</layer-list>
这是与 View 分页器同步的三个平滑步骤。您可以根据需要轻松自定义代码。
结果
感谢并乐于提供帮助 :)
关于android - 如何在android中开发一个显示Viewpager Indicator的步数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350410/
我有一个 TableView,每个单元格的附件都设置为“披露指示器”,它工作正常。 然后,我决定在使用外部来源的数据更新每个单元格时添加一个事件指示器。为此,我设置了: cell.accessoryV
我正在尝试遵循来自 here 的公认解决方案在 Xcode 6.3.2 上,但指示器拒绝显示,或者由于某种原因我在 iPhone 6 plus 上看不到它。没有错误消息、带有标题的警告等显示,并且空白
我的 JavaFX 应用程序计算另一个文件夹下一层的每个文件夹的大小。我的问题是,当我点击“应用”按钮(该按钮在另一个类中开始计算)时,我想要一个不确定的进度指示器来向用户显示该应用程序正在运行并且尚
One of the biggest causes of instability in Elasticsearch is fielddata: field values have to be load
我在实验宇宙学中做一些模拟,在使用 numpy 数组时遇到了这个问题。我是 numpy 的新手,所以我不确定我是否做错了或者这是一个错误。我跑: Enthought Python Distributi
我有一个结构数组,这些结构基本上是形成一条边的两个点。由于性能,我使用结构。 现在我有对象 A 保存边缘和这个对象中的一个方法来告诉另一个对象 B 关于这个边缘数组中的连续边缘列表。 边缘: e0 e
我正在使用 Elasticsearch ( Official PHP client) 开发一个 PHP 网站。 我正在编写需要确定新插入文档的测试在继续之前准备好搜索。 为此,在索引新文档后,我调用:
我是 DirectX 12 的新手,正在尝试在 DX 上渲染网格。到目前为止,我成功地从 obj 和 fbx 文件中检索顶点和索引,并使用模板通用窗口项目在 DX 12 上渲染所有顶点。但是,我遇到了
我是 DirectX 12 的新手,正在尝试在 DX 上渲染网格。到目前为止,我成功地从 obj 和 fbx 文件中检索顶点和索引,并使用模板通用窗口项目在 DX 12 上渲染所有顶点。但是,我遇到了
我正在使用 StratifiedKFold 创建用于拆分数据的索引。它给了我索引超出范围的错误。 Xdev的索引从0到47503。 cv_index 变量的 min 和 max 索引分别为 0 和 1
我想绘制以下 UIPageControl 指示器: 我目前有以下代码,结果是: if (isHighlighted) { UIBezierPath *ovalPath = [UIBezierP
我们在以下用例中使用 elasticsearch。 Elasticsearch 版本:5.1.1 注意:我们使用的是 AWS 托管的 ElasticSearch 我们有一个 Multi-Tenancy
我正在尝试使用 scikit-learn 中的算法根据大量输入来预测输出。我似乎收到错误“索引过多”,但无法弄清楚原因。 CSV 文件训练: 1.1 0.2 0.1 0 0.12 0
在this page的底部从 Python 2.3 文档中它说: slice objects now have a method indices(length) which, given the le
我在主线程上做一些繁重的计算,这些计算不能在单独的线程上运行。 我想在这些计算运行时在应用程序 UI 上显示一个“忙碌指示器”(即旋转小部件)。因此,我无法在主线程上显示繁忙指示器,因为在这些计算运行
我有一个名为 memory_region 的类,有点像未类型化的 gsl::span (即它本质上是一个 void* 和一个 size_t ),我也将其用于类型删除。因此它有一个 as_span()方
我一直在寻找如何将 Tablayout 中的指示器更改为圆形,就像这样 但我不知道该怎么做,任何帮助! 最佳答案 来自source code ,标签指示器定义为: @dimen/de
我在哪里可以找到可绘制的 Android“向上”按钮以便我可以对其进行自定义?或者它的文件名是什么,以便我可以快速搜索以在 sdk 目录中找到它? 最佳答案 正如您在 default style 中看
我遇到了 ViewPager 的另一个问题,我现在无法用我目前的知识解决它。 我有带 ViewPager 的 TabPageIndicator,在每个选项卡上,我都显示文本。这是简单的 TextVie
我将如何制作一个自定义指示器,该指示器将使用可绘制对象和用于 SwipeRefreshLayout 的自定义动画? 我查看了 SwipeRefreshLayout 的源代码,发现 CircleImag
我是一名优秀的程序员,十分优秀!