博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
得知Android小遴选程序第七头(他们定义对话框、Gallery、ImageSwitcher)
阅读量:6306 次
发布时间:2019-06-22

本文共 3432 字,大约阅读时间需要 11 分钟。

效果如下面的:

          

一共一个activity和两个xml。

******当我们须要使用的组件不在setContentView()设置的布局文件里,那我们就须要使用inflate()方法来获取。使用view对象调用findViewByid(),作者一开直接调用findViewByid。走了好多弯路,于是写此博文来帮助各位博友,知道了就非常easy了。

*******

MainActivity.java

package com.example.head;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageButton;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.ViewSwitcher.ViewFactory;public class MainActivity extends Activity implements ViewFactory{			ImageButton imageButton ;	Gallery gallery;	ImageSwitcher imageSwitcher;		int index;		private final static Integer[] IMAGES = {		R.drawable.z1,		R.drawable.z2,		R.drawable.z3			};	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);						imageButton = (ImageButton)findViewById(R.id.IB01);				imageButton.setBackgroundResource(R.drawable.z1);					}		public void click(View v){				LayoutInflater layoutInflater =LayoutInflater.from(MainActivity.this);		View view = layoutInflater.inflate(R.layout.headchoose, null);		AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);		imageSwitcher= (ImageSwitcher)view.findViewById(R.id.IS01);		 //组件不在activity_main。所以先要使用inflate获得headchoose布局		//并赋值给view对象。使用view对象,来调用findViewByid()方法。假设不用view来		//调用findViewByid(),找不到会报错。				gallery =  (Gallery)view.findViewById(R.id.Gall01);				imageSwitcher.setFactory(MainActivity.this);			gallery.setAdapter(new ImageAdapter(MainActivity.this));								gallery.setOnItemClickListener(new OnItemClickListener() {			@Override			public void onItemClick(AdapterView
arg0, View arg1, int position, long arg3) { imageSwitcher.setImageResource(IMAGES[position]); index = position; } }); builder.setTitle("图片选择") .setView(view) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { imageButton.setBackgroundResource(IMAGES[index]); } }); builder.show(); } @Override public View makeView() { // TODO Auto-generated method stub return new ImageView(this); } /* * ImageAdapter * */ class ImageAdapter extends BaseAdapter{ Context context; public ImageAdapter(Context context){ this.context = context; } @Override public int getCount() { // TODO Auto-generated method stub return IMAGES.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View v, ViewGroup vg) { ImageView imageView = new ImageView(context); imageView.setImageResource(IMAGES[position]); imageView.setLayoutParams(new Gallery.LayoutParams(120, 120)); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); return imageView; } }}
activity_main.xml

headchoose.xml

版权声明:本文博主原创文章。博客,未经同意不得转载。

你可能感兴趣的文章
jenkins集成sonarqube
查看>>
snort 中的Boyer-Moore
查看>>
ip_append_data
查看>>
百度云
查看>>
py Image模块的介绍
查看>>
Spring和Hibernate动态建表及动态加载映射文件(无需Session factory...
查看>>
Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
查看>>
ActiveMQ学习笔记04 - 基于LevelDB的高可用
查看>>
163
查看>>
在一个Bundle里如何加载服务配置
查看>>
宏带来的副作用
查看>>
linux下nmap工具的使用
查看>>
数据库错误[DBNETLIB][ConnectionOpen(Connect()).]SQL Server不存在或拒绝访问
查看>>
陆昉:信息化时代背景下的高等教育改革与发展
查看>>
章政华_连接移动时代新生活
查看>>
Android恶意代码分析与渗透测试
查看>>
Spring Seucrity 之 Remember Me
查看>>
KalCalendar
查看>>
YmsGradientButton
查看>>
Hibernate各种连接、报表查询等
查看>>