public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)
Since: API Level 1
Callback method to be invoked when an item in this AdapterView has been clicked.
Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.
Parameters :
parent The AdapterView where the click happened.
view The view within the AdapterView that was clicked (this
will be a view provided by the adapter)
position The position of the view in the adapter.
id The row id of the item that was clicked.
public TabMenu(Context context,OnItemClickListener titleClick,OnItemClickListener bodyClick,
MenuTitleAdapter titleAdapter,int colorBgTabMenu,int aniTabMenu){
super(context);
mLayout = new LinearLayout(context);
mLayout.setOrientation(LinearLayout.VERTICAL);
//标题选项栏
gvTitle = new GridView(context);
gvTitle.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
gvTitle.setNumColumns(titleAdapter.getCount());
gvTitle.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
gvTitle.setVerticalSpacing(1); //纵向间距
gvTitle.setHorizontalSpacing(1); //横向间距
gvTitle.setGravity(Gravity.CENTER);
gvTitle.setOnItemClickListener(titleClick);
gvTitle.setAdapter(titleAdapter);
gvTitle.setSelector(new ColorDrawable(Color.TRANSPARENT));//选中的时候为透明色
this.titleAdapter=titleAdapter;
//子选项栏
gvBody = new GridView(context);
gvBody.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
gvBody.setSelector(new ColorDrawable(Color.TRANSPARENT));//选中的时候为透明色
gvBody.setNumColumns(4);
gvBody.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
gvBody.setVerticalSpacing(10);
gvBody.setHorizontalSpacing(10);
gvBody.setPadding(10, 10, 10, 10);
gvBody.setGravity(Gravity.CENTER);
gvBody.setOnItemClickListener(bodyClick);
mLayout.addView(gvTitle);
mLayout.addView(gvBody);
//设置默认项
this.setContentView(mLayout);
this.setWidth(LayoutParams.FILL_PARENT);
this.setHeight(LayoutParams.WRAP_CONTENT);
this.setBackgroundDrawable(new ColorDrawable(colorBgTabMenu));// 设置TabMenu菜单背景
this.setAnimationStyle(aniTabMenu);
this.setFocusable(true);// menu菜单获得焦点 如果没有获得焦点menu菜单中的控件事件无法响应
}
private LinearLayout makeMenyBody(int position)
{
LinearLayout result=new LinearLayout(this.mContext);
result.setOrientation(LinearLayout.VERTICAL);
result.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
result.setPadding(10, 10, 10, 10);
TextView text = new TextView(this.mContext);
text.setText(texts[position]);
text.setTextSize(fontSize);
text.setTextColor(fontColor);
text.setGravity(Gravity.CENTER);
text.setPadding(5, 5, 5, 5);
ImageView img=new ImageView(this.mContext);
img.setBackgroundResource(resID[position]);
result.addView(img,new LinearLayout.LayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)));
result.addView(text);
return result;
}
//再熟悉不过了,这可以作为一个Gallery的Adapter
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.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(mThumbIds[position]);
i.setAdjustViewBounds(true);
i.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
i.setBackgroundResource(R.drawable.picture_frame);
return i;
}
}
private Integer[] mThumbIds = {
R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
R.drawable.sample_thumb_6, R.drawable.sample_thumb_7};
//makeView是ImageSwitcher回调的一个方法,当你设置了//mSwitcher.setFactory(this)之后,将掉用两次makeView
public View makeView() {
ImageView i = new ImageView(this);
i.setBackgroundColor(0xFF000000);
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
return i;
}
<TextView android:id="@+id/label" style="?android:attr/textAppearanceMediumInverse" //什么意思?
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_weight="0"
android:padding="4dip"
android:singleLine="true"
android:color="?android:attr/textColorPrimaryInverse" //还有这个
android:background="#888" />
// Tell the media scanner about the new file so that it is
// immediately available to the user.手动扫描特定文件
MediaScannerConnection.scanFile(this,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
分享到:
相关推荐
国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修实验代码2-2-1国嵌必修...
国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修实验代码2-2-4国嵌必修...
国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修实验代码2-3-2国嵌必修...
视频中工程代码 class2_MUX2视频中工程代码 class2_MUX2视频中工程代码 class2_MUX2视频中工程代码 class2_MUX2视频中工程代码 class2_MUX2视频中工程代码 class2_MUX2视频中工程代码 class2_MUX2视频中工程代码 ...
struts2学习测试代码,struts2学习测试代码2struts2学习测试代码,struts2学习测试代码
国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修实验代码2-1-3国嵌必修...
国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修实验代码2-1-1国嵌必修...
国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修实验代码2-3-1国嵌必修...
国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修实验代码2-3-3国嵌必修...
国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修实验代码2-5-3国嵌必修...
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
Visual C++源代码 2 如何根据窗体大小排列控件Visual C++源代码 2 如何根据窗体大小排列控件Visual C++源代码 2 如何根据窗体大小排列控件Visual C++源代码 2 如何根据窗体大小排列控件Visual C++源代码 2 如何根据...
2.蚁群算法求解CVRP问题matlab代码 3.蚁群算法求解VRPTW问题matlab代码 4.CW法构造CVRP初始解matlab代码 5.CW节约算法构造VRPTW初始解matlab代码 6.GA求解CVRP问题matlab代码 7.GA求VRPTW matlab代码 8.SA求解CVRP...
python爬虫源代码2
2.线性维纳模型预测剩余使用寿命的代码及文章参考 3.非线性维纳模型预测剩余使用寿命的代码及文章参考 4.MLE估计算法代码 5.卡尔曼滤波算法更新参数代码。 6.贝叶斯参数更新 ,基于维纳过程模型的剩余寿命预测; ...
cocos2dx游戏开发之旅源代码2 方便大家学习
代码2.cpp
ajax on java 源代码2
VC++深入详解源代码2
VC++深入详解源代码2