Joseph_TF
2016-05-06 00:42
采纳率: 16.7%
浏览 3.3k
已采纳

Android中,BaseAdapter类中怎么获取屏幕宽度?

本人小白,自定义了个MyAdapter继承BaseAdapter,现在想在MyAdapter中获取屏幕宽度,但是该类不是Activity也不是service,WindowManeger获取不到.getSystemService(Context.WINDOW_SERVICE),Resources的getResources();也没有。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • 黑桃K_K 2016-05-06 01:08
    已采纳

    如果 控件宽度是适应屏幕的话 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;

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • danielinbiti 2016-05-06 00:59
     把宽度作为参数传入BaseAdapter就行了
    
    评论
    解决 无用
    打赏 举报
  • yangxu1993 2016-05-06 01:15

    如果是ListView 和 GridView 可以先设置item 固定item的高宽 背景。。。

    评论
    解决 无用
    打赏 举报
  • 恋恋西风 2016-05-06 01:15
     DisplayMetrics dm = new DisplayMetrics();
        ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm);
          screenWidth=dm.widthPixels ;
    
    评论
    解决 无用
    打赏 举报
  • 白玉梁 2016-05-06 01:32

    将上下文传进Adapter,如:(Activity context),然后可以通过context获取了

    评论
    解决 无用
    打赏 举报
  • 小小Q_Forler 2016-05-06 01:50

    new的时候不是有content么,用它

    评论
    解决 无用
    打赏 举报
  • havedream_one 2016-05-06 01:54
    评论
    解决 无用
    打赏 举报
  • 流浪兔灬 2016-05-06 02:32

    传入参数Context 用context获取

    评论
    解决 无用
    打赏 举报
  • qq_29628249 2016-05-06 02:37

    adapter适配器中如果你要做操作是必须传一个activity过来的吧 不然getview中怎么设置convertview

    评论
    解决 无用
    打赏 举报
  • 海天鹰 2019-03-08 18:30

    WindowManager WM = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题