Android gallery视图问题
大家好,我有点困惑,我一直在尝试使用gallery view小部件创建菜单。我想定制一点;我想放大选定的图像,直到他们选择下一个。到目前为止,我已经设法让它放大选定的图像,问题是当你滚动到下一个图像,他们保持放大。 我一直在尝试使用适配器视图创建以前查看的图像的视图来解决此问题,这样我可以删除动画,但它没有分配任何内容,并且创建的视图保持为空。Android gallery视图问题,android,Android,大家好,我有点困惑,我一直在尝试使用gallery view小部件创建菜单。我想定制一点;我想放大选定的图像,直到他们选择下一个。到目前为止,我已经设法让它放大选定的图像,问题是当你滚动到下一个图像,他们保持放大。 我一直在尝试使用适配器视图创建以前查看的图像的视图来解决此问题,这样我可以删除动画,但它没有分配任何内容,并且创建的视图保持为空。 如何访问以前查看的图像以便删除动画? 为任何帮助干杯 public class main extends ListActivity { private
如何访问以前查看的图像以便删除动画?
为任何帮助干杯
public class main extends ListActivity {
private Gallery gallery;
private Animation grow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
gallery = (Gallery) findViewById(R.id.Gallery01);
gallery.setAdapter(new AddImgAdp(this));
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected (AdapterView<?> parent, View v, int position, long id) {
Animation grow = AnimationUtils.loadAnimation(main.this, R.anim.grow);
View sideView = parent.findViewById(position - 1);
if (sideView != null){
((ImageView)sideView).clearAnimation();}
sideView = parent.findViewById(position + 1);
if (sideView != null){
((ImageView)sideView).clearAnimation();}
v.startAnimation(grow);
v.setLayoutParams(new Gallery.LayoutParams(170, 150));
Toast.makeText(main.this,""+ sideView, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
}
});
}
public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;
private Integer[] Imgid = {
R.drawable.intranet, R.drawable.map,R.drawable.info,R.drawable.call2,R.drawable.youtube,R.drawable.message,
R.drawable.facebook
};
public AddImgAdp(Context c) {
cont = c;
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
typArray.recycle();
}
public int getCount() {
return Imgid.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 imgView = new ImageView(cont);
imgView.setImageResource(Imgid[position]);
imgView.setLayoutParams(new Gallery.LayoutParams(110, 110));
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
imgView.setBackgroundResource(GalItemBg);
return imgView;
}
}
}
public类主扩展ListActivity{
私人画廊;
私人动画成长;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.main);
画廊=(画廊)findViewById(R.id.Gallery01);
gallery.setAdapter(新AddImgAdp(本));
gallery.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共位置(AdapterView父视图、视图v、整型位置、长id){
Animation grow=AnimationUtils.loadAnimation(main.this,R.anim.grow);
View sideView=parent.findviewbyd(位置-1);
如果(侧视图!=null){
((图像视图)侧视图).clearAnimation();}
sideView=parent.findViewById(位置+1);
如果(侧视图!=null){
((图像视图)侧视图).clearAnimation();}
v、 启动(生长);
v、 setLayoutParams(新画廊.LayoutParams(170150));
Toast.makeText(main.this,“+侧视图,Toast.LENGTH_SHORT.show();
}
@凌驾
未选择公共无效(AdapterView arg0){
}
});
gallery.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
}
});
}
公共类addimgapp扩展BaseAdapter{
int GalItemBg;
私人语境控制;
私有整数[]Imgid={
R.drawable.intranet,R.drawable.map,R.drawable.info,R.drawable.call2,R.drawable.youtube,R.drawable.message,
R.drawable.facebook
};
公共AddImgAdp(上下文c){
cont=c;
TypedArray typArray=获取StyledAttributes(R.styleable.GalleryTheme);
typArray.recycle();
}
public int getCount(){
返回Imgid.length;
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
ImageView imgView=新的ImageView(续);
imgView.setImageResource(Imgid[position]);
imgView.setLayoutParams(新图库.LayoutParams(110110));
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
imgView.setBackgroundResource(GalItemBg);
返回imgView;
}
}
}
在选定的选项中,我将执行以下操作:
public void onItemSelected (AdapterView<?> parent, View v, int position, long id) {
if(mPreviousView != null) //remove logic
mPreviousView = v;
// Other View stuff ...
}
我发现这种方法比findViewById加/减逻辑工作得更好。如果视图为空,则表示我们还没有以前的视图
private View mPreviousView;