whatsnew界面

本文介绍了一种在Android应用中实现WhatsNew引导界面的方法。该界面用于展示软件新功能及操作指南,通过Gallery组件实现,并进行了自定义优化,如全屏显示、拨动效果调整等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   当下 一些比较流行的android软件在首次安装启动时会显示一连串的whatsnew界面。whatsnew除了告诉用户软件版本升级带来的新功能,同时也可以是软件使用的操作指引,使用户更快熟悉软件。下面是一些软件类似功能的软件的截图.







 

    从截图看whatsnew的每一页是一幅图片和描述文字,不同的页面可以通过拨动来切换。文字是对图片的阐述,而图片和文字都是对软件某个功能的描述。从用户的角度我认为图片最好清晰易懂文字起到辅助理解,最好用户一眼就能看懂;而且页面不宜过多,过多的页面拨动会使人感觉厌倦。

    whatsnew的实现方式可以多种。比如可以使用ViewFlipper、Gallery等等。下面我采用Gallery来实现一个whatsnew的原型。
    Gallery现实whatsnew需要对它做一些处理:
    1,默认情况下gallery显示的view是居中显示的(见下图),左右view的一部分跟中间的view显示在同一屏幕内,所以要设置view填充全屏;
   

   2,gallery在拨动的时候会导致视图滚动而且会根据你的拨动力度滚动多张,所以要重载onFling处理拨动效果;
   3,gallery默认情况在左右两边会出现阴影效果需要去除;

   4,如果gallery中的每一个视图内设置了OnClickListener会导致gallery不能拨动(本文未涉及点击事件处理,不加讨论)。


   下面贴实现的核心代码:

    private View buildGuide(Context ctx) {
	final Gallery gallery = new Gallery(ctx) {
	    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
		if (this.getSelectedItemPosition() == WHATSNEW.length - 1)
		    finish();
		onKeyDown((e2.getX() > e1.getX()) ? KeyEvent.KEYCODE_DPAD_LEFT : KeyEvent.KEYCODE_DPAD_RIGHT, null);
		return true;
	    }
	};

	gallery.setAdapter(new ArrayAdapter<Integer>(ctx, 0, WHATSNEW) {
	    public View getView(int position, View convertView, final ViewGroup parent) {
		ImageView image = null;
		if (convertView == null) {
		    image = new ImageView(getContext());
		    image.setScaleType(ScaleType.FIT_XY);
		    image.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
		} else {
		    image = (ImageView) convertView;
		}

		image.setBackgroundColor(Color.BLACK);
		image.setImageResource(WHATSNEW[position]);
		return image;
	    }
	});

	gallery.setSpacing(0);
	gallery.setPadding(0, 0, 0, 0);
	gallery.setFadingEdgeLength(0);
	return gallery;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值