Android编程之仿iPhone滚轮控件

网上看到有人写了一个滚动组件,这个不错,大家可以看看

但是,我个人觉得这里有一处不是很好,大家可以试试:不循环的情况下,如果就是最后一个选项,你把它移到最上或者最下的位置,它回滚回到选择条时,是直接跳过去的,而不是自然滑动过去的,这个需要改进一下!








  这三张图分别是使用滚动控件实现城市,随机数和时间三个简单的例子,当然,界面有点简陋,下面我们就以时间这个为例,开始解析一下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_height="wrap_content"
	android:orientation="vertical"
	android:background="@drawable/layout_bg"
	android:layout_width="fill_parent">
	<TextView
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginTop="24dp"
		android:layout_gravity="center_horizontal"
		android:textSize="20sp"
		android:text="Please select the city" />
	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_height="wrap_content"
		android:layout_gravity="center_horizontal"
		android:layout_width="fill_parent"
		android:paddingLeft="12dp"
		android:paddingRight="12dp"
		android:paddingTop="4dp"
		android:layout_marginTop="8dp"
		android:orientation="horizontal">
		<kankan.wheel.widget.WheelView
			android:id="@+id/country"
			android:layout_height="wrap_content"
			android:layout_width="wrap_content"
			android:layout_gravity="center_vertical"
			android:layout_weight="1" />
		<kankan.wheel.widget.WheelView
			android:id="@+id/city"
			android:layout_height="wrap_content"
			android:layout_width="wrap_content"
			android:layout_marginLeft="10dp"
			android:layout_weight="1.5" />
	</LinearLayout>
	<!-- Button android:layout_width="wrap_content" android:layout_height="wrap_content" 
		android:layout_gravity="center_horizontal" android:layout_marginTop="18dp" 
		android:textSize="18sp" android:text=" Next > "/ -->
</LinearLayout>

package kankan.wheel.demo;

import kankan.wheel.R;
import kankan.wheel.widget.ArrayWheelAdapter;
import kankan.wheel.widget.OnWheelChangedListener;
import kankan.wheel.widget.WheelView;

import android.app.Activity;
import android.os.Bundle;

public class CitiesActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.cities_layout);
                
        WheelView country = (WheelView) findViewById(R.id.country);
        String countries[] = new String[] {"USA", "Canada", "Ukraine", "France"};
        country.setVisibleItems(3);
        country.setAdapter(new ArrayWheelAdapter<String>(countries));

        final String cities[][] = new String[][] {
        		new String[] {"New York", "Washington", "Chicago", "Atlanta", "Orlando"},
        		new String[] {"Ottawa", "Vancouver", "Toronto", "Windsor", "Montreal"},
        		new String[] {"Kiev", "Dnipro", "Lviv", "Kharkiv"},
        		new String[] {"Paris", "Bordeaux"},
        		};
        
        final WheelView city = (WheelView) findViewById(R.id.city);
        city.setVisibleItems(5);

        country.addChangingListener(new OnWheelChangedListener() {
			public void onChanged(WheelView wheel, int oldValue, int newValue) {
				city.setAdapter(new ArrayWheelAdapter<String>(cities[newValue]));
				city.setCurrentItem(cities[newValue].length / 2);
			}
		});
        
        country.setCurrentItem(2);
    }
}


滚动视图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
仿iPhone热门应用栏是一个非常流行的产品趋势,许多手机品牌已经开始推出类似的产品。仿iPhone热门应用栏是指手机系统底部的一排常用应用图标,用户可以轻松访问和切换这些应用程序。 优点: 1. 提高用户体验:仿iPhone热门应用栏将常用的应用程序放置在屏幕底部,用户可以轻松地操作和访问这些应用。这种设计提高了用户的便利性和操作效率。 2. 提升工作效率:对于经常使用特定应用程序的用户来说,将它们放在热门应用栏中可以节省寻找和打开应用的时间,提高工作效率。 3. 可定制性:用户可以根据自己的需求和喜好,在热门应用栏中添加或删除特定的应用程序。这种可定制性使得用户可以根据自己的使用习惯进行个性化设置。 缺点: 1. 屏幕空间受限:仿iPhone热门应用栏通常会占据屏幕底部的一部分空间,可能会减少用户在其他应用程序中可见的屏幕空间。这对于一些需要较大屏幕空间才能展示内容的应用程序来说可能是一个问题。 2. 可能存在兼容性问题:由于不同手机品牌和操作系统之间存在差异,仿iPhone热门应用栏可能在某些设备上无法正常运行或显示。这需要开发人员在设计和开发过程中考虑到兼容性问题。 总结: 仿iPhone热门应用栏是一种流行的设计趋势,它提供了一种方便和高效的方式来访问和切换常用应用程序。虽然它具有许多优点,但也存在一些限制和挑战,特别是在屏幕空间和设备兼容性方面。因此,在设计和实施仿iPhone热门应用栏时,需要综合考虑这些因素,并根据特定的用户需求进行定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值