首页 > 代码库 > Gallery画廊视图
Gallery画廊视图
画廊视图使用Gallery表示,能够按水平方向显示内容,并且可以手指直接拖动图片和移动,一般用
来浏览图片,,被选中的选项位于中间,并且可以响应事件显示信息.在使用画廊视图时,首先在屏幕
上添加Gallery组件,通常使用标记在XML而布局文件中添加.
画廊视图在4.0后已经过期,但是我们仍然可以使用,不过后面我们将用水平的ListView
自定义组件来实现这个效果,在自定义视图中讲解。
常用属性:
1. android:animationDuration 用于设置列表项切换时的动画持续时间
2. android:gravity 用于设置对齐方式
3. android:spacing 用于设置列表项之间的间距
4. android:unselectedAlpha 用于设置没有选中的列表项的透明度
1、搭建布局
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" > 4 5 <ImageView 6 android:id="@+id/img" 7 android:layout_width="match_parent" 8 android:layout_height="wrap_content" 9 android:layout_centerHorizontal="true"10 android:adjustViewBounds="true"11 android:scaleType="fitXY"12 android:layout_margin="30dp"13 android:src="@drawable/ic_launcher" />14 15 <Gallery16 android:id="@+id/gallery"17 android:layout_below="@id/img"18 android:layout_margin="20dp"19 android:spacing="10dp"20 android:layout_width="match_parent"21 android:layout_height="wrap_content" />22 23 </RelativeLayout>
2、MainActivity.java中将所有组件找到,并设置监听
1 public class MainActivity extends Activity implements OnItemSelectedListener { 2 3 Gallery gallery; 4 ImageView img; 5 int[] imgId = new int[6]; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState);10 setContentView(R.layout.activity_main);11 initView();12 MyBaseAdapter adapter = new MyBaseAdapter();13 gallery.setAdapter(adapter);14 gallery.setOnItemSelectedListener(this);15 16 17 }18 19 private void initView() {20 for (int i = 0; i < imgId.length; i++) {21 try {22 imgId[i] = R.drawable.class.getField("img0"+(i+1)).getInt(null);23 } catch (Exception e) {24 e.printStackTrace();25 } 26 }27 28 gallery = (Gallery) findViewById(R.id.gallery);29 img = (ImageView) findViewById(R.id.img);30 }31 32 class MyBaseAdapter extends BaseAdapter{33 34 @Override35 public int getCount() {36 return imgId.length;37 }38 39 @Override40 public Object getItem(int position) {41 return null;42 }43 44 @Override45 public long getItemId(int position) {46 // TODO Auto-generated method stub47 return 0;48 }49 50 @Override51 public View getView(int position, View convertView, ViewGroup parent) {52 if(convertView == null){53 convertView = new ImageView(MainActivity.this);54 }55 ImageView iv = (ImageView) convertView;56 57 //设置数据58 iv.setImageResource(imgId[position]);59 60 return convertView;61 }62 63 }64 65 @Override66 public void onItemSelected(AdapterView<?> parent, View view, int position,67 long id) {68 69 img.setImageResource(imgId[position]);70 71 }72 73 @Override74 public void onNothingSelected(AdapterView<?> parent) {75 // TODO Auto-generated method stub76 77 }78 79 80 }
Gallery画廊视图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。