引用public class SamplePopup extends Activity { PopupWindow popup; //GridView gView; GridView gView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); final LinearLayout musicGrid = (LinearLayout) inflater.inflate(R.layout.gridviewpopup, null, false); gView = (GridView) musicGrid.findViewById(R.id.gridview); gView.setAdapter(new ImageAdapter(this)); <SPAN style="COLOR: #ff00ff"> popup = new PopupWindow(this); popup.setContentView(musicGrid); popup.setTouchable(true);</SPAN> <SPAN style="COLOR: #ff0000"> popup.setFocusable(true);</SPAN> gView.setOnItemClickListener(new Gallery.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Log.i("huhudhufhud",""); // popup.showAsDropDown(findViewById(R.id.main)); <SPAN style="COLOR: #ff00ff">popup.dismiss();</SPAN> } }); final Button popupButton = (Button) findViewById(R.id.popup); popupButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { <SPAN style="COLOR: #ff00ff"> popup.setWidth(300); popup.setHeight(200); popup.showAtLocation(findViewById(R.id.main), Gravity.CENTER, 0, 0);</SPAN> } }); } }
粉红色部分就是vpopupwindow要使用的,红色的部分一定要添加 不然点击事件不执行。
layout.gridviewpopup 如下:
[code="java<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridviewparent"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:gravity="center_horizontal" >
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="30dp"
android:horizontalSpacing="15dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</LinearLayout>
引用
main
引用<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/popup" android:scaleType="centerInside" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="POPUP" /> </LinearLayout>
attrsl:
引用<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Gallery1"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources>
这个呢只是图片的一个外边框背景。
ImageAdapter的扩展
引用public class ImageAdapter extends BaseAdapter { private Context mContext; private int itemBackground; public ImageAdapter(Context c) { mContext = c; //---setting the style--- <SPAN style="COLOR: #ffcc00">TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery1); itemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle();</SPAN> } public int getCount() { return images.length; } public Object getItem(int position) { //return images[position]; return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(mContext); } else { imageView = (ImageView) convertView; } imageView.setImageResource(images[position]); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); <SPAN style="COLOR: #ffcc00">imageView.setBackgroundResource(itemBackground);</SPAN> return imageView; } public Integer[] images = { R.drawable.android, R.drawable.icon, R.drawable.android }; }
发表评论
-
初学Android,Intent概要(十一) .
2012-08-11 14:01 805下面内容我觉得归纳的很好,我看了几本书,包括一些英文的,写 ... -
初学Android,字符串,数字,尺寸,数组资源(十二) .
2012-08-11 00:09 1366下面是使用字符串,数字,尺寸,数组资源的例子,挺好,一个例子已 ... -
初学Android,使用Drawable资源之使用StateListDrawable资源(十三) .
2012-08-11 00:06 1164StateListDrawable用于组织多个Drawable ... -
初学Android,使用Drawable资源之使用LayerDrawable资源(十四)
2012-08-03 10:27 780LayerDrawable,系统将会按这些Drawable对象 ... -
初学Android,使用Drawable资源之使用ShapeDrawable资源(十五)
2012-08-03 14:40 1117ShapeDrawable比较简单,用来定义一个基本几何图形, ... -
初学Android,使用Drawable资源之使用ClipDrawable资源(十六)
2012-08-03 16:23 1085ClipDrawable代表从其它位图上截取一个"图 ... -
初学Android,使用Drawable资源之使用AnimationDrawable资源(十七)
2012-08-06 11:34 939这次学学怎么使用动画资源,AnimationDrawable, ... -
初学Android,使用自定义的XML资源(十八)
2012-08-06 15:16 691使用自定义的XML资源,这当然也必须是Android的一个功能 ... -
初学Android,使用菜单资源(十九)
2012-08-07 17:16 711Android里面也可用XML定义菜单资源,菜单分两种,一种是 ... -
初学Android,使用样式(style)资源(二十)
2012-08-09 09:57 776在Android里面,样式的概念跟网页中CSS样式表的概念相似 ... -
初学Android,使用主题(Theme)资源(二十一)
2012-08-09 11:06 754主题跟样式类似,也是放在路径/res/values下同样以&l ... -
初学Android,使用属性(Attribute)资源(二十二)
2012-08-09 14:47 788感觉这篇写的不错,拿来转了 http://wujia ... -
初学Android,使用原始资源(二十三)
2012-08-09 17:09 803原始资源就是Android没有为之提供专门支持的资源文件,可以 ... -
requestWindowFeature类
2012-08-09 17:21 748requestWindowFeature可以设 ... -
android学习笔记(二)
2012-08-08 12:00 717Activities and Tasks 一个活动能启动另一 ... -
Android之SurfaceView学习(一)
2012-08-07 16:57 637首先我们先来看下官方API对SurfaceView的介绍 S ... -
adnroid 学习笔记(一)
2012-08-06 16:10 627今天开始学习android,在配置资源文件时遇到的问题,在这里 ...
相关推荐
Android 自定义ImageAdapter构造器,实现手指控制图片左右滑动效果,范例需使用比较多的class 类,请一个一个引入。 实现的原理是 添加一ImageAdapter并设置给Gallery对象,设置一个itemclickListener并Toast被...
本文将深入探讨Gallery的使用方法和关键特性。 首先,要使用Gallery,我们需要在布局文件中声明它。以下是一个简单的XML示例: ```xml android:id="@+id/gallery" android:layout_width="match_parent" ...
这些可以通过重写`onScrollStateChanged()`和`onFling()`方法实现,或者使用`setUnselectedAlpha()`和`setSpacing()`方法改变未选中项的透明度和项目间距。 ### 示例代码 在提供的压缩包文件"Gallery"中,可能包含...
- 图片的加载和显示性能需要注意,大量图片可能导致内存溢出,因此推荐使用异步加载库(如Picasso、Glide)来优化图片处理。 以上就是关于Android中ImageSwitcher组件的详细解析,通过合理的使用,可以轻松地实现...
本知识点将深入探讨如何在Android中实现一个简单的九宫格布局,并通过`Home.java`和`ImageAdapter.java`这两个关键文件来理解其实现逻辑。 首先,我们来看`Home.java`,这是Activity类,负责整个九宫格界面的初始化...
总结,这个代码片段展示了如何在Android中设计一个自动播放的广告页,包括使用`RelativeLayout`和`Gallery`控件布局,以及自定义`Adapter`实现图片的加载和轮播。通过添加自动切换逻辑,可以进一步完善这个广告页的...
在构造方法中,ImageAdapter接收上下文信息和图片ID数组,然后生成ImageView数组,每个ImageView对象都包含处理过的带倒影的图片。 GalleryFlow类则主要实现了图片的各种变换。其中包含的最大旋转角度、最大缩放值...
适配器模式和监听器的使用让交互更加丰富,使得开发者可以快速构建出美观且功能完备的图片浏览应用。不过,需要注意的是,由于Gallery控件在Android API 21之后已被弃用,所以在新版本的Android系统中,可能需要寻找...
- 设置适配器:通过`setImageAdapter()`方法设置`ImageAdapter`,适配器负责提供要显示的`View`。 - 切换图片:使用`setImageResource()`或`setNextView()`方法在`ImageSwitcher`中切换图片。 结合`Gallery`和`...
Gallery的使用通常需要自定义适配器(如ImageAdapter),将图片数据绑定到每个Item上,同时处理点击事件和滑动事件。 ImageAdapter是自定义的适配器,它扩展了BaseAdapter,重写了其中的方法,如getCount()返回图片...
总的来说,`Gallery`组件虽然已被弃用,但它仍然是学习Android UI设计的一个重要部分,理解其工作原理有助于更好地理解和使用现代的视图组件。通过自定义适配器、添加事件监听以及优化滚动体验,你可以为用户提供一...
这里,我们将使用一个自定义的`ImageAdapter`: ```java public class ImageAdapter extends BaseAdapter { private Context context; private List<File> images; public ImageAdapter(Context context, List...
`ImageAdapter`是一个自定义的适配器,它扩展了BaseAdapter,负责加载和管理图片。适配器的实现通常包括获取图片资源、创建ImageView并将其添加到ImageSwitcher中。例如: ```java public class ImageAdapter ...
在这里,我们使用了Glide库来加载图片,它能够高效地处理内存和磁盘缓存,同时提供了丰富的图片加载、占位符和错误图等功能。 为了读取手机中的图片,我们可以遍历设备上的所有图片文件,通常在`onCreate()`或`...
这里,ImageAdapter 继承自 BaseRecyclerViewAdapter,並实现了 onBindGroupHolder 和 onBindChildHolder 两个方法,这两个方法分别用于绑定 GroupView 和 ChildView 的数据。 三、功能特性 Android ...
这个例子展示了如何结合使用`ImageSwitcher`和`Gallery`来实现一个图片轮播的效果,用户可以通过左右滑动`Gallery`来切换不同的图片,同时`ImageSwitcher`会通过设定的动画效果平滑地显示新图片。在实际应用中,可以...
使用`listFiles()`方法筛选出`.jpg`, `.jpeg`和`.png`等扩展名的文件。 ```java File[] imageFiles = new File(sdCard.getAbsolutePath() + "/DCIM").listFiles(new FilenameFilter() { @Override public ...
以上就是使用`RecyclerView`实现图片滚动和选择的主要步骤。通过这些基本操作,你可以创建一个高效的、可定制的图片浏览界面,同时允许用户通过点击和滚动进行图片选择。当然,`RecyclerView`的功能远不止这些,还...
尽管如此,`Gallery`仍然是许多早期Android应用的重要组成部分,理解其工作原理和如何使用依然有价值。 `Gallery`是一个基于`AbsSpinner`的视图,它提供了一个水平滚动的布局,可以显示多个子视图。每个子视图通常...
在Android开发中,`Gallery`和`ImageSwitcher`是两个非常实用的UI组件,它们可以结合使用来创建丰富的图像浏览体验。`Gallery`组件是一个水平滚动的视图,可以展示多个项目,而`ImageSwitcher`则是一个用于在两张...