`
chenqiang5206
  • 浏览: 33284 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类

ImageAdapter和PopupWindow的使用

 
阅读更多
引用
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 自定义ImageAdapter 图片左右滑动效果.rar

    Android 自定义ImageAdapter构造器,实现手指控制图片左右滑动效果,范例需使用比较多的class 类,请一个一个引入。  实现的原理是 添加一ImageAdapter并设置给Gallery对象,设置一个itemclickListener并Toast被...

    Gallery 使用

    本文将深入探讨Gallery的使用方法和关键特性。 首先,要使用Gallery,我们需要在布局文件中声明它。以下是一个简单的XML示例: ```xml android:id="@+id/gallery" android:layout_width="match_parent" ...

    Android Gallery控件使用实例

    这些可以通过重写`onScrollStateChanged()`和`onFling()`方法实现,或者使用`setUnselectedAlpha()`和`setSpacing()`方法改变未选中项的透明度和项目间距。 ### 示例代码 在提供的压缩包文件"Gallery"中,可能包含...

    sample of imageSwitcher for android

    - 图片的加载和显示性能需要注意,大量图片可能导致内存溢出,因此推荐使用异步加载库(如Picasso、Glide)来优化图片处理。 以上就是关于Android中ImageSwitcher组件的详细解析,通过合理的使用,可以轻松地实现...

    android 九宫格代码

    本知识点将深入探讨如何在Android中实现一个简单的九宫格布局,并通过`Home.java`和`ImageAdapter.java`这两个关键文件来理解其实现逻辑。 首先,我们来看`Home.java`,这是Activity类,负责整个九宫格界面的初始化...

    安卓之 (通用)(实用代码片段)自动播放的广告页设计1

    总结,这个代码片段展示了如何在Android中设计一个自动播放的广告页,包括使用`RelativeLayout`和`Gallery`控件布局,以及自定义`Adapter`实现图片的加载和轮播。通过添加自动切换逻辑,可以进一步完善这个广告页的...

    3D图片浏览效果实现.pdf

    在构造方法中,ImageAdapter接收上下文信息和图片ID数组,然后生成ImageView数组,每个ImageView对象都包含处理过的带倒影的图片。 GalleryFlow类则主要实现了图片的各种变换。其中包含的最大旋转角度、最大缩放值...

    Android的Gallery控件处理图片特效实例代码

    适配器模式和监听器的使用让交互更加丰富,使得开发者可以快速构建出美观且功能完备的图片浏览应用。不过,需要注意的是,由于Gallery控件在Android API 21之后已被弃用,所以在新版本的Android系统中,可能需要寻找...

    android--Gallery 的基本使用

    - 设置适配器:通过`setImageAdapter()`方法设置`ImageAdapter`,适配器负责提供要显示的`View`。 - 切换图片:使用`setImageResource()`或`setNextView()`方法在`ImageSwitcher`中切换图片。 结合`Gallery`和`...

    Android图片拖动、点击放大效果

    Gallery的使用通常需要自定义适配器(如ImageAdapter),将图片数据绑定到每个Item上,同时处理点击事件和滑动事件。 ImageAdapter是自定义的适配器,它扩展了BaseAdapter,重写了其中的方法,如getCount()返回图片...

    Android中使用Gallery浏览照片

    总的来说,`Gallery`组件虽然已被弃用,但它仍然是学习Android UI设计的一个重要部分,理解其工作原理有助于更好地理解和使用现代的视图组件。通过自定义适配器、添加事件监听以及优化滚动体验,你可以为用户提供一...

    从SD卡中取出图片以网格布局格式显示图片

    这里,我们将使用一个自定义的`ImageAdapter`: ```java public class ImageAdapter extends BaseAdapter { private Context context; private List&lt;File&gt; images; public ImageAdapter(Context context, List...

    android ImageSwitcher实现实例

    `ImageAdapter`是一个自定义的适配器,它扩展了BaseAdapter,负责加载和管理图片。适配器的实现通常包括获取图片资源、创建ImageView并将其添加到ImageSwitcher中。例如: ```java public class ImageAdapter ...

    读取手机图片并用gridview显示

    在这里,我们使用了Glide库来加载图片,它能够高效地处理内存和磁盘缓存,同时提供了丰富的图片加载、占位符和错误图等功能。 为了读取手机中的图片,我们可以遍历设备上的所有图片文件,通常在`onCreate()`或`...

    Android ExpandableRecyclerView使用方法详解

    这里,ImageAdapter 继承自 BaseRecyclerViewAdapter,並实现了 onBindGroupHolder 和 onBindChildHolder 两个方法,这两个方法分别用于绑定 GroupView 和 ChildView 的数据。 三、功能特性 Android ...

    安卓 图片切换android源代码+注释.doc.doc

    这个例子展示了如何结合使用`ImageSwitcher`和`Gallery`来实现一个图片轮播的效果,用户可以通过左右滑动`Gallery`来切换不同的图片,同时`ImageSwitcher`会通过设定的动画效果平滑地显示新图片。在实际应用中,可以...

    Android--开发--Gallery从SD卡中获取图片,并显示.rar

    使用`listFiles()`方法筛选出`.jpg`, `.jpeg`和`.png`等扩展名的文件。 ```java File[] imageFiles = new File(sdCard.getAbsolutePath() + "/DCIM").listFiles(new FilenameFilter() { @Override public ...

    recyclerview使用

    以上就是使用`RecyclerView`实现图片滚动和选择的主要步骤。通过这些基本操作,你可以创建一个高效的、可定制的图片浏览界面,同时允许用户通过点击和滚动进行图片选择。当然,`RecyclerView`的功能远不止这些,还...

    Android高级应用源码-画廊试图Gallery.zip

    尽管如此,`Gallery`仍然是许多早期Android应用的重要组成部分,理解其工作原理和如何使用依然有价值。 `Gallery`是一个基于`AbsSpinner`的视图,它提供了一个水平滚动的布局,可以显示多个子视图。每个子视图通常...

    gallery与ImageSwitcher组合使用

    在Android开发中,`Gallery`和`ImageSwitcher`是两个非常实用的UI组件,它们可以结合使用来创建丰富的图像浏览体验。`Gallery`组件是一个水平滚动的视图,可以展示多个项目,而`ImageSwitcher`则是一个用于在两张...

Global site tag (gtag.js) - Google Analytics