问题描述
- Android中,BaseAdapter类中怎么获取屏幕宽度?
- 本人小白,自定义了个MyAdapter继承BaseAdapter,现在想在MyAdapter中获取屏幕宽度,但是该类不是Activity也不是service,WindowManeger获取不到.getSystemService(Context.WINDOW_SERVICE),Resources的getResources();也没有。
解决方案
如果 控件宽度是适应屏幕的话 getView(int position View convertView ViewGroup parent){} 方法中 parent 就可以拿来用
parent.getWidth()
convertView.setLayoutParams(new AbsListView.LayoutParams((int) (parent.getWidth() / 3-5) (int) (parent.getWidth() / 3-5)));
return convertView;
解决方案二:
把宽度作为参数传入BaseAdapter就行了
解决方案三:
DisplayMetrics dm = new DisplayMetrics(); ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm); screenWidth=dm.widthPixels ;
解决方案四:
如果是ListView 和 GridView 可以先设置item 固定item的高宽 背景。。。
解决方案五:
将上下文传进Adapter,如:(Activity context),然后可以通过context获取了
解决方案六:
new的时候不是有content么,用它
解决方案七:
http://www.cnblogs.com/mandroid/archive/2011/04/05/2005525.html
解决方案八:
传入参数Context 用context获取
解决方案九:
adapter适配器中如果你要做操作是必须传一个activity过来的吧 不然getview中怎么设置convertview
时间: 2024-08-30 12:01:56