我一直致力于创建图像的网格视图,图像存在于Assets文件夹中.从android链接中的assets文件夹打开文件帮助我使用位图来读取它.我目前的代码是:
public View getView(final int position, View convertView, ViewGroup parent)
{
try
{
AssetManager am = mContext.getAssets();
String list[] = am.list("");
int count_files = imagelist.length;
for(int i= 0;i<=count_files; i++)
{
BufferedInputStream buf = new BufferedInputStream(am.open(list[i]));
Bitmap bitmap = BitmapFactory.decodeStream(buf);
imageView.setImageBitmap(bitmap);
buf.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序确实从Assets文件夹中读取图像,但它没有遍历网格视图中的单元格.网格视图的所有单元格具有从该组图像中拾取的相同图像.任何人都可以告诉我如何迭代细胞仍然有不同的图像?
我在ImageAdapter类中有上面的代码,它扩展了BaseAdapter类,在我的主类中,我将它与我的gridview链接:
GridView gv =(GridView)findViewById(R.id.gridview);
gv.setAdapter(new ImageAdapter(this, assetlist));
Run Code Online (Sandbox Code Playgroud)
Saran,非常感谢您提前提供任何帮助
我有一个网格视图,我使用自定义适配器填充.在填充gridview时,我将每个元素放在一个唯一标记内.
填充此gridview之后,我希望在gridview中找到其标记的特定元素.我怎么找到这个?
目前我这样做:
gridviewobject.findViewById(thetag);
// gridview object is the object of the gridview that i have populated.
Run Code Online (Sandbox Code Playgroud) 我想创建一个具有可点击图像的gridview ..
单击图像时,相应的值将显示在该网格视图下方.
我面临的问题是设计部分,我不知道如何设计这样的网格视图..每次我尝试这样做我得到一些不好的结果..我现在没有Android ui设计经验.
请帮忙 !
我有一个gridview,它由一个从SQLITE数据库中提取数据的游标填充.有时,没有数据可供显示.这显示空白活动.
我之前使用过listview,我可以使用@android:id/empty设置一个像"找不到数据"的空视图.
我可以使用GridView的任何类似功能吗?
请帮助.
我想制作一个custom grid我们通常在Android手机中看到的图像

我一直在搜索它几个小时.但没有运气好处,最后我试图在这里提问.有人可以建议我如何实现这种gridview.或者我是否需要遵循任何其他方法?
我正在开发api> 14,我已经实现了拖放功能GridView.
但是,在将项目拖动到屏幕的顶部或底部时,GridView不会滚动.
当你移动到边缘时,我想让它向你拖动项目的方向滚动,当你将项目移回屏幕的垂直中心时,它会变慢.
当然,这种功能应该是任何拖放的标准功能吗?
无论如何,有谁知道最好的方法来解决这个问题?
更新:我实际上在互联网上找不到一个例子,甚至试图用拖动的网格项目滚动(我在这里错过了什么?)更不用说解决我的问题了.
你如何获得可拖动的项目(显示为阴影)来滚动gridview?我按如下方式分配拖动:
int gridChildPosition = position - mGridView.getFirstVisiblePosition();
ViewFlipper gridItem = (ViewFlipper) mGridView.getChildAt(gridChildPosition);
ClipData data = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(gridItem);
if (mGridView.startDrag(data, shadowBuilder, gridItem, 0)) {
int lastVisiblePosition = mGridView.getLastVisiblePosition() - mGridView.getFirstVisiblePosition();
for (int i=0; i<=lastVisiblePosition; i++) {
if (i == gridChildPosition) {
continue;
}
mGridView.getChildAt(i).setOnDragListener(new GridItemDragListener(position));
mGridView.getChildAt(i).setAlpha(0.4f);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码创建了可拖动的阴影,所有其他项目当前变暗.但我不确定如何让阴影滚动网格视图.
我正在尝试为我的应用程序中的某些项目创建一个表格/网格,我希望在每个单元格周围有一个边框来分割项目,并将设置与项目保持一致.这个应用程序将用于工业环境中,可能有不熟悉Android的人需要使用它,因此试图让它尽可能简单.
表/格将包含TextView,EditText,Spinner,和Button,并且也将滚动(经由ScrollView亲本).
我读到GridView并发现它(似乎)只能以编程方式获取项目,如果我错了请纠正我.我觉得这是不必要的,因为我知道我想要什么,在哪里.此外,我还没有尝试以编程方式添加项目到布局,所以我想我会先尝试其他选项.此外,如果自动显示边框线,或者您可以完全显示边框线,则GridView文档不会说明这种方式.
我开始使用a TableLayout并且能够获得除边界线之外的所有内容.我试图android:divider获得线条,但这不起作用.我曾经想过要创建一堆TextView带有黑色背景和~2dp宽度/高度的s来制作我自己的边框线.这感觉就像是一个巨大的浪费.然后我还阅读了TableLayout文档并发现:"TableLayout容器不显示其行,列或单元格的边框线."
然后我尝试了,GridLayout并得到了相同的结果TableLayout.我试过padding和margins,既不工作.此外,GridLayout文档指出:"网格由一组无限细线组成,将观察区域分隔成单元格."
我的问题是:
是否存在我错过的TableLayout或者GridLayout通过xml给我边界线的声明?
如果没有,那么GridView我会给我想要的台词吗?
我可以添加我想要的所有以前提到的项目GridView吗?
android android-gridview android-tablelayout android-gridlayout
我有一个GridView显示字母图片的图片,每次在最后一行中都没有字母表.并且最后一行是左对齐的,这看起来并不好,所以我想让最后一行在中心,任何建议
我的GridView代码:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:columnWidth="70dp"
android:horizontalSpacing="10dp"
android:verticalSpacing="20dp"
android:gravity="center"
android:stretchMode="spacingWidthUniform" >
</GridView>
Run Code Online (Sandbox Code Playgroud)


我试图在android中的gridview布局中添加一个可滚动的标题,我尝试过我可以在网上找到的所有东西,但我不能让它工作,这种类型的布局出现在一些流行的应用程序,如Facebook和Instagram但我无法找到任何可以让我了解如何实际操作的示例代码,任何人都知道如何实现这一目标?将gridview添加到scrollview也不起作用,下面是一些照片,说明了我想要实现的目标.
这是在卷轴之前:

这是在滚动之后:

我的Android Studio版本是2.3.3
在我的Android应用程序gradle构建中,我已经明确地server_url为调试类型和发布类型定义了不同的字符串值:
buildTypes {
debug {
resValue "string", "server_url", "https://myserver.debug.com/"
}
release {
resValue "string", "server_url", "https://myserver.com/"
...
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我通过以下方式获取字符串值:
String url = context.getString(R.string.server_url);
Run Code Online (Sandbox Code Playgroud)
我将Android手机连接到笔记本电脑.Android studio工具栏如下所示:

我还选择构建变体为"debug":
我点击了
,该应用程序正在我的手机上运行,但是,它使用server_url在发布类型中定义的值.为什么?
(在build/generated/res/resValues/debug/generated.xml&build/generated/res/resValues/release/generated.xml我看到那些价值观,没有问题.)
====更新===
加入defaultPublishConfig 'debug'解决了该问题(感谢@Ulug托普拉克),但我仍然不知道为什么,虽然我已构建变量为"Debug"的Android Studio不会没有它的工作.也许是Android Studio中的一个错误?
android android-gridview android-studio android-gradle-plugin android-studio-2.3