我有自定义适配器实现的网格视图。触摸网格视图项时,将选择整个项。我想对在网格视图中选择不同的子项执行不同的操作。
在下面的例子中,我在项目中有两个图像和一个文本视图。我想在触摸文本视图、图像视图时执行不同的操作。
这是可能做到这一点在Android?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listrow"
android:layout_width="fill_parent"
android:layout_height="66dp"
android:background="@drawable/grid_color_selector"
android:descendantFocusability="blocksDescendants"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="fill_horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:focusable="false"
android:focusableInTouchMode="false"
android:orientation="horizontal" >
<ImageView
android:id="@+id/thumbimage"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="fitXY"
android:src="@drawable/icon" />
<TextView
android:id="@+id/txttitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:layout_weight="44"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="English Channels"
android:textColor="@color/Black"
android:textSize="16sp" />
<ImageView
android:id="@+id/share"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="fitXY"
android:src="@drawable/share" />
</LinearLayout>
自定义网格视图实现是
public class GridViewAdapterImpl extends ArrayAdapter < String > {
private final Activity context;
private final String[] data;
private int resource;
public GridViewAdapterImpl(Activity context, int resource, String[] fileNames) {
super(context, resource, fileNames);
this.resource = resource;
this.context = context;
this.data = fileNames;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(resource, parent, false);
holder = new ViewHolder();
holder.imageTitle = (TextView) row.findViewById(R.id.txttitle);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
holder.imageTitle.setText(data[position]);
return row;
}
static class ViewHolder {
TextView imageTitle;
}
Gridview调用是
GridView gridView = (GridView) findViewById(R.id.gridView);
gridviewadapteripl customGridAdapter = new gridviewadapteripl(this,R.layout.row_list_videos,this . getvideofiles());GridView . set adapter(customGridAdapter);
gridView。setOnItemClickListener(新的onItemClick Listener(){public void onItemClick(AdapterView父级,视图v,int位置,长id){
只需将ImageView组件添加到您的视图容器中,并实现侦听器,请参见:
public class GridViewAdapterImpl extends ArrayAdapter < String > {
private final Activity context;
private final String[] data;
private int resource;
public GridViewAdapterImpl(Activity context, int resource, String[] fileNames) {
super(context, resource, fileNames);
this.resource = resource;
this.context = context;
this.data = fileNames;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(resource, parent, false);
holder = new ViewHolder();
holder.imageTitle = (TextView) row.findViewById(R.id.txttitle);
holder.imvShare = (ImageView) row.findViewById(R.id.share)
// Set OnClickListener
holder.imageTitle.setOnClickListener(plsnTitleClickListener);
holder.imvShare.setOnClickListener(plsnShareClickListener);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
holder.imageTitle.setText(data[position]);
return row;
}
private OnClickListener plsnTitleClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Implement the Logic here
}
};
private OnClickListener plsnShareClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Implement the Logic here
}
};
static class ViewHolder {
TextView imageTitle;
ImageView imvShare;
}
本文向大家介绍Android自定义View实现可以拖拽的GridView,包括了Android自定义View实现可以拖拽的GridView的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现可拖拽GridView的具体代码,供大家参考,具体内容如下 先看看效果图 主要思想: 1、监听触碰事件 2、用WindowManager添加拖曳的图片 3、用Collections.
(0,0)(0,1) (1,0)(1,1) 像这种格式一样,我需要显示,也需要根据数据大小水平和垂直滚动
本文向大家介绍Android自定义View实现飘动的叶子效果(三),包括了Android自定义View实现飘动的叶子效果(三)的使用技巧和注意事项,需要的朋友参考一下 上一篇对自定义View及一些方法有所了解,下面做一个简单的叶子飘动的例子 主要技术点 1、添加背景图片canvas.drawBitmap() 2、Matrix动画类 3、Matrix添加到画布上 步骤 1、添加黄色背景颜色 2、添加
本文向大家介绍android中RecyclerView自定义分割线实现,包括了android中RecyclerView自定义分割线实现的使用技巧和注意事项,需要的朋友参考一下 最近一直在看RecyclerView,较之ListView它确实是灵活多变,给予开发者更多自定义的空间,比如:需要添加头部和尾部、item的点击事件、自定义的LayoutManager,还有就是下面要说的自定义的分割线。 1
本文向大家介绍Android实现自定义倒计时,包括了Android实现自定义倒计时的使用技巧和注意事项,需要的朋友参考一下 最近工作中遇到个要做倒计时60秒的进度条,经过参考别人的资料做出来需求的效果。废话少说先来个效果: 一定想知道是怎么实现的吧!下面是代码 然后新建一个attr.xml; 这样一个自定义的view就写完了;那怎么用呢;布局就不说了; 这样就轻轻松松的跑起来了,希望能帮助到需要的
本文向大家介绍Android实现自定义的弹幕效果,包括了Android实现自定义的弹幕效果的使用技巧和注意事项,需要的朋友参考一下 一、效果图 先来看看效果图吧~~ 二、实现原理方案 1、自定义ViewGroup-XCDanmuView,继承RelativeLayout来实现,当然也可以继承其他三大布局类哈 2、初始化若干个TextView(弹幕的item View,这里以TextView 为例,