阶段一:进行界面布局(如下图所示)
Main.xml具体代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg">
<GridView
android:id="@+id/imagelist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="20dp"
android:numColumns="2"
android:verticalSpacing="10dp" >
</GridView>
<ImageView
android:id="@+id/imageshow"
android:layout_marginTop="20dp"
android:scaleType="centerInside"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
新建Android XML Layout File,命名为:Grid.xml.具体代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/smallImage"
android:layout_width="80dp"
android:layout_height="50dp"/>
<TextView
android:id="@+id/desciption"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#FFFFFF"/>
</LinearLayout>
阶段二:编写MainActivity,查找组件并进行事件处理。具体代码如下:
package com.lks.imageshow;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class MainActivity extends Activity {
private GridView imageList;
private ImageView imageShow;
private TextView description;
private int[] pics;
private String[] descs=new String[6];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageList=(GridView) findViewById(R.id.imagelist);
imageShow=(ImageView) findViewById(R.id.imageshow);
description=(TextView) findViewById(R.id.desciption);
pics=new int[]{R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,R.drawable.image5,R.drawable.image6};
for(int i=0;i<descs.length;i++){
descs[i]="图片"+(i+1);
}
List<Map<String,Object>> pic_items=new ArrayList<Map<String, Object>>();
for(int i=0;i<pics.length;i++){
Map<String,Object> item=new HashMap<String, Object>();
item.put("pic", pics[i]);
item.put("desc",descs[i]);
pic_items.add(item);
}
SimpleAdapter adapter=new SimpleAdapter(this, pic_items, R.layout.grid, new String[]{"pic","desc"}, new int[]{R.id.smallImage,R.id.desciption});
imageList.setAdapter(adapter);
imageShow.setImageResource(pics[0]);
imageList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
imageShow.setImageResource(pics[position]);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
运行结果显示:
分享到:
相关推荐
结合这两个组件,经常会在GridView中使用ImageView来展示一系列图片,比如在相册应用中。这时,可以通过自定义Adapter来绑定数据,设置每个ImageView的src属性,同时调整GridView的列数和间距,以达到理想的效果。 ...
使用GridView时,你需要实现一个适配器(Adapter),例如BaseAdapter或ArrayAdapter,来提供数据并决定每个单元格如何显示。适配器负责将数据项转化为GridView中的View对象,如ImageView或TextView。适配器的典型...
在Android开发中,UI设计是至关重要的一环,而GridView和ImageView是两个常用且重要的组件。这篇文章将深入探讨这两个组件的用法以及它们在实际应用中的实现。 首先,GridView是一个二维滚动网格视图,用于展示一...
本教程将详细介绍如何利用GridView和ViewFlipper来实现图片浏览功能。 首先,`GridView`是Android中的一个控件,它将子视图排列成网格形式。我们可以自定义每行的列数,并且每个子视图都可以通过适配器(Adapter)...
综上所述,这个Demo主要展示了如何结合使用GridView和LruCache实现高效、流畅的图片加载,通过异步加载和缓存机制,降低了网络请求的频率,提高了应用的响应速度。对于Android开发者来说,理解和掌握这些技术对于...
在默认情况下,GridView的数据列是垂直滚动的,但有时为了满足特殊布局需求,我们可能需要实现GridView的横向显示和滚动功能。这个"GridView横向显示实例"正是针对这一需求的实践案例。 在Android中,实现GridView...
BaseAdapter是Android系统提供的一个基础适配器类,它是Adapter接口的一个实现,适用于多种UI组件,如ListView、Spinner和GridView等。BaseAdapter的主要职责是将数据模型与UI组件关联起来,使得数据能够被正确地...
假设我们要显示一个包含图片和文字的列表,我们可以这样实现`getView()`: ```java @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if ...
综上所述,实现"网络图片的下载并GridView显示"涉及的关键技术包括:使用Volley或其他网络库进行图片下载,处理Android的外部存储权限,自定义Adapter实现GridView的显示,以及异步加载和内存优化。在实际开发中,还...
GridView是一个可以将数据以网格形式展示的视图组件,适用于显示大量小图标或者缩略图,如应用图标、照片集等。本教程将详细介绍如何实现这一功能,并涉及异步线程的使用,以避免阻塞主线程。 首先,我们需要准备一...
在Android开发中,GridView是一种常见的布局控件,用于展示数据集,通常以网格形式排列,类似于iOS中的...在使用过程中,可以结合标签“源码”和“工具”去查阅相关资料,进一步优化和扩展这个九宫格组件。
7. **布局嵌套**:如果你的GridView内部有复杂的布局,比如ImageView和TextView的组合,需要注意避免嵌套权重(weight)导致的性能下降。尽可能使用确定的尺寸,减少布局的计算时间。 8. **触摸事件处理**:在处理...
在实践中,我们可以结合使用上述技术,比如在GridView的Adapter中,为每个图片的ImageView设置异步加载和缓存策略。在文件名为“GetTheNetImage”的示例代码中,可能包含了实现上述功能的具体代码片段,如异步下载...
这可能涉及到使用另一个视图组件(如`ImageView`或者`ViewPager`)来展示大图,同时可能还需要考虑图片的加载优化,比如使用异步加载库如Glide或Picasso来避免UI线程阻塞。 此外,为了展示多张图片,项目可能包含了...
综上所述,实现GridView异步加载大量网络图片需要结合异步处理、图片缓存、压缩解码以及第三方库等多种技术手段,同时优化GridView自身,以确保应用的性能和用户体验。在实际开发中,应当根据项目需求选择合适的方法...
总结起来,"Android GridView显示系统安装的应用程序"涉及到的知识点包括:GridView的使用、PackageManager服务的使用来获取应用信息、自定义Adapter的实现以及数据绑定。这些知识点都是Android开发中的基础内容,...
通过以上步骤,我们就可以利用GridView和ImageSwitcher实现一个图片左右滑动切换的功能。这个功能不仅可以应用于图片浏览,还可以扩展到其他类型的内容,比如卡片式的视图切换,只需要将ImageView替换为相应的视图...
GridView是一种可以将数据以网格形式排列的视图组件,非常适合用来展示多行多列的数据项,如应用图标和应用名。 首先,我们需要创建一个自定义的Dialog,这可以通过继承`AlertDialog.Builder`类或者直接使用`...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似图库...通过合理的设计和实现,我们可以构建出一个功能完善的图片选择界面,满足用户在图库预览和多选操作的需求。