是男人就下100层【第二层】——帮美女更衣(1)
来源:互联网 发布:主持人 李晨 知乎 编辑:程序博客网 时间:2024/04/29 18:46
去年有一段时间有一个应用下载量很高,都是男同志的功劳,现在又出了第二版,第二层我们就来实现一下《帮美女更衣》这个应用,很多男生应该熟悉这个应用了吧,这里我就不解释里面的内容了,呵呵。
先看看我们要实现的效果:
(惨不忍睹!做好后大家去挖剩下的吧)
先看看布局文件activity_main.xml
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageSwitcher android:id="@+id/image_switcher" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" /> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="80.0dip" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:background="#55000000" android:gravity="center_vertical" android:spacing="15.0dip" /></RelativeLayout>
ImageSwitcher继承自ViewSwitcher,重写了showNext()、showPrevious()方法。
使用ImageSwithcer的步骤如下:
1、为ImageSwitcher提供一个ViewFactory,该ViewFactory会有一个makeView()方法来生成View组件,这个组件必须是ImageView.
2、切换图片时只需要调用setImageDrawable(Drawable drawable)方法、setImageResource(int resid)方法或setImageURI(Uri uri).
package com.example.mygrilproject;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.Gallery.LayoutParams;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.ImageView.ScaleType;import android.widget.ViewSwitcher.ViewFactory;public class MainActivity extends Activity implements ViewFactory{private ImageSwitcher is;private Gallery gallery;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取ImageSwitcher对象is = (ImageSwitcher)findViewById(R.id.image_switcher);is.setFactory(this);//获取gallery对象gallery = (Gallery)findViewById(R.id.gallery);//设置适配器gallery.setAdapter(new ImageAdapter(MainActivity.this));//设置监听gallery.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {int drawableId = 0; try { drawableId = R.drawable.class.getDeclaredField( "pre" + position).getInt(this); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } //更换ImageSwitcher中的图片 is.setImageResource(drawableId);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {} });is.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){}});}//设置图片切换的动画效果@Overridepublic View makeView() {ImageView i = new ImageView(this);i.setBackgroundColor(0xFF000000);i.setScaleType(ImageView.ScaleType.FIT_CENTER);i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));return i;}private class ImageAdapter extends BaseAdapter {private Context mContext;public ImageAdapter(Context c){mContext = c;}@Overridepublic int getCount() {return 11;//11张图片}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView = new ImageView(mContext);int drawableId = 0;try {//使用反射获取资源对象drawableId = R.drawable.class.getDeclaredField("pre" + position).getInt(this);} catch (IllegalArgumentException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();}imageView.setLayoutParams(new Gallery.LayoutParams(120,120));imageView.setScaleType(ScaleType.FIT_XY);imageView.setImageResource(drawableId);return imageView;}}}运行效果:
下一篇我们再来看看如何撕衣服,呵呵
源代码下载:http://download.csdn.net/detail/lxq_xsyu/7014543
8 0
- 是男人就下100层【第二层】——帮美女更衣(1)
- 是男人就下100层【第二层】——帮美女更衣(2)
- 是男人就下100层【第一层】——高仿微信界面(1)
- 是男人就下100层【第四层】——Crazy贪吃蛇(1)
- 是男人就下100层【第一层】——高仿微信界面(2)
- 是男人就下100层【第一层】——高仿微信界面(3)
- 是男人就下100层【第一层】——高仿微信界面(4)
- 是男人就下100层【第一层】——高仿微信界面(5)
- 是男人就下100层【第一层】——高仿微信界面(6)
- 是男人就下100层【第一层】——高仿微信界面(7)
- 是男人就下100层【第一层】——高仿微信界面(8)
- 是男人就下100层【第一层】——高仿微信界面(9)
- 是男人就下100层【第一层】——高仿微信界面(10)
- 是男人就下100层【第四层】——Crazy贪吃蛇(2)
- 是男人就下100层【第四层】——Crazy贪吃蛇(3)
- 是男人就下100层
- 是男人就下100层【第三层】——高仿交通银行手机客户端界面
- 是男人就下100层【第五层】——换肤版2048游戏
- Android相对布局实现各种梅花效果
- 委托之使用委托
- 把一个有序整数数组放到二叉树。
- Restore IP Addresses - LeetCode
- Android中Bitmap和Drawable
- 是男人就下100层【第二层】——帮美女更衣(1)
- UVA 11600 - Masud Rana(状态压缩DP+记忆化搜索)
- java环境变量的配置
- Java中字符串相加和字符串常量相加区别
- 使用PhysicsEditor编辑Citrus Engine可用的模板
- Android学习笔记第二弹之事件处理
- Axis2生成wsdl客户端代码方式
- Android游戏开发---2D游戏中背景的绘制
- Android学习笔记第三弹之各种Activity