- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 GalleryView 和大约 40 张图片,而且速度很慢,因为没有回收...
任何人都可以向我展示在 getView
方法上对 GalleryView
的基本回收。
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private Integer[] mImageIds = {
R.drawable.sample_1,
R.drawable.sample_2,
R.drawable.sample_3,
R.drawable.sample_4,
R.drawable.sample_5,
R.drawable.sample_6,
R.drawable.sample_7
};
public ImageAdapter(Context c) {
mContext = c;
TypedArray a = c.obtainStyledAttributes(R.styleable.HelloGallery);
mGalleryItemBackground = a.getResourceId(
R.styleable.HelloGallery_android_galleryItemBackground, 0);
a.recycle();
}
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]);
i.setLayoutParams(new Gallery.LayoutParams(150, 100));
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setBackgroundResource(mGalleryItemBackground);
return i;
}
}
最佳答案
与其在 getView
中创建新的 ImageView
,不如将 convertView
转换为您想要的 View 。这是一种方法的示例:
public View getView(int position, View cv, ViewGroup parent) {
if (! convertView istanceof ImageView)
{
ImageView cv = new ImageView(mContext);
cv.setLayoutParams(new Gallery.LayoutParams(150, 100));
cv.setScaleType(ImageView.ScaleType.FIT_XY);
cv.setBackgroundResource(mGalleryItemBackground);
}
cv.setImageResource(mImageIds[position]);
return cv;
}
只需转换 convertView 以匹配您想要的内容,但首先要确保其 View 类型正确。
更新:您还应该在显示图像之前对图像进行缩减采样。假设您在 res/drawable
下保存了一张 500x500 像素的图像,但该图像在屏幕上只会占用 125x125 像素。您需要在显示图像之前对图像进行下采样。要知道您需要对位图进行多少下采样,您必须先了解它的大小
int maxSize = 125; // make 125 the upper limit on the bitmap size
int resId; // points to bitmap in res/drawable
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true; // Only get the bitmap size, not the bitmap itself
BitmapFactory.decodeResource(c.getResources(), resId, opts);
int w = opts.outHeight, h = opts.outHeight;
int maxDim = (w>h)?w:h; // Get the bigger dimension
现在我们有了尺寸,可以计算图像的下采样率。如果我们有一个 500x500 的位图并且我们想要一个 125x125 的位图,我们从 int inSample = 500/125;
int inSample = maxDim/maxSize;
opts = new BitmapFactory.Options();
opts.inSampleSize = inSample;
现在只需对资源进行解码,我们就有了下采样位图。
Bitmap b = BitmapFactory.decodeResource(c.getResources(), resId, opts);
请记住,原始位图不受影响。您可以再次解码图像并将 opts.inSampleSize
设置为 1
,您将获得整个 500x500 位图图像。
关于Android GalleryView 回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797641/
我正在尝试实现 this JqueryGallery 到我的网站(大灰色框)。现在我的问题是图像没有出现。 这是我的website 这是我的标题代码: $(document).re
我想检测画廊 View 滑动到 Android 中的下一个项目,如果画廊 View 当前索引为 0 如果将画廊 View 滑动到下一个图像我想检测这个事件项目更改监听器在 android 中的幻灯片事
我正在使用 GalleryView 和大约 40 张图片,而且速度很慢,因为没有回收... 任何人都可以向我展示在 getView 方法上对 GalleryView 的基本回收。 public cla
我有一个 GalleryView,它始终显示 100 多张图片。中央图片(默认情况下在应用程序加载时或当用户单击 horz.scroll 列表中的另一张图片时)显示在 ImageView 下方较大的空
我目前正在使用 GalleryView 插件 ( http://spaceforaname.com/galleryview/ ) 开发一个网站。一切都很好,除了没有“鼠标移开时开始自动播放”选项(相当
我只是想知道 Android 是否内置了代码,以便我可以在画廊 View 中选择多个图像,然后将这些图像导出为字符串数组中的文件名(例如/sdcard/~f1.jpg,/sdcard/~f2.jpg,
滑动时如何获取当前图片在图库 View 中的显示位置? 最佳答案 所以我认为这是不可能的,因为适配器 View 的工作方式。基本上大多数(如果不是全部)对适配器 View 适配器的调用必须在 UI 线
我想向我的应用程序添加两个图库 View 。为了弄清楚我的问题,如下图所示。我想在 ImageView 下方添加另一个水平 ScrollView ,该 View 也将显示图像,并且功能与上面的完全一样
我已经升级到 jQuery GalleryView 2.1.1,它似乎不支持图像上的 ahref 标签。有解决方法吗?我希望能够在图像鼠标悬停时显示标题并在单击时重定向到另一个页面。 最佳答案 dem
我正在使用 jQuery GalleryView插件,我想删除在发生过渡时沿缩略图滑动的箭头。 我不知道如何删除它(尝试使用“nav_theme”配置选项但没有成功)。 有人知道这是怎么做到的吗? 最
我试图通过将项目添加到 Adapter 并在从 doInBackground 内部调用的处理程序中执行以下操作来使用新项目刷新 GalleryView AsyncTask 的方法。 private f
在我的应用程序中,我想从 SD 卡获取图像到特定位置,我需要在图库中显示, 我使用的代码是附加的 private Gallery gallery; private ImageView imgView;
我正在尝试将 NextGen Gallery 插件与新的 jquery 幻灯片插件 GalleryView 一起使用。这些应该可以很好地协同工作。 如果我只使用默认的 Flash 播放器,NGG 就可
我试图在画廊 View 中显示存储在 SD 卡中的所有图像。 我尝试过使用内容提供程序(android.provider.MediaStore.images.Media 类),但似乎卡在了某个点上。不
这是代码,请指导我进行更改。 package org.androidpeople.gallery; import android.app.Activity; import android.conten
我正在尝试膨胀一个 ImageView,它可以缩放我可以在 GalleryView 中显示的 Drawable。我用来膨胀 View 的代码似乎工作正常,只是没有应用 ImageView 的属性。具体
我正在尝试膨胀一个 ImageView,它可以缩放我可以在 GalleryView 中显示的 Drawable。我用来膨胀 View 的代码似乎工作正常,只是没有应用 ImageView 的属性。具体
我有一个 sqlite 数据库,其中包含 2000 多个低分辨率缩略图图片。数据库本身的大小超过 100MB。该项目要求我将照片驻留在数据库中而不是文件路径。 这是我想做的,需要帮助是我第一次处理图像
我只是想问你如何在 nextGen (galleryview template) wordpress 插件中更改图像的宽度/高度?设置好所有内容后,它就像魅力一样工作,但我无法增加图像的大小。这是我在
所有-有没有人将 CursorAdapter 与 Gallery 小部件一起使用?有很多示例显示 Gallery 和 BaseAdapter(Array) 作为其数据存储。 我的用例是从 SQLite
我是一名优秀的程序员,十分优秀!