Android 动态设置线性布局的宽度?

Android 动态设置线性布局的宽度?,android,width,android-linearlayout,Android,Width,Android Linearlayout,我想制作自己的自定义“进度条”。我通过绘制线性布局来实现这一点,每个布局都有不同的颜色。之后,我想给它们分配一个宽度,使其看起来像一个进度条。我现在拥有的东西是: my CustomAdapter项的XML文件(在Gridview中): 然而,它什么也没做。。。我是否应用了错误的代码来设置宽度?还是我用线性布局来画那些“栅栏”的想法可能是错误的 编辑getView方法: @Override public View getView(int position, View v, ViewGro

我想制作自己的自定义“进度条”。我通过绘制线性布局来实现这一点,每个布局都有不同的颜色。之后,我想给它们分配一个宽度,使其看起来像一个进度条。我现在拥有的东西是:

my CustomAdapter项的XML文件(在Gridview中):

然而,它什么也没做。。。我是否应用了错误的代码来设置宽度?还是我用线性布局来画那些“栅栏”的想法可能是错误的

编辑getView方法:

@Override
    public View getView(int position, View v, ViewGroup parent) {
        View mView = v;

        if (mView == null) {

            LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE);
            mView = vi.inflate(R.layout.levelselector_item, null);

        }

        TextView level = (TextView) mView.findViewById(R.id.tvLevel);
        TextView levelScore = (TextView) mView.findViewById(R.id.tvLevelScore);

        if (mView != null) {

            level.setText(Integer.toString(getItem(position).getLevel()));

            loadDataBase();
            int correctAnswers = myDbHelper.getCorrectAnswers(getItem(position).getLevel());
            correctAnswersPrev = 0;
            correctAnswersPrev = myDbHelper.getCorrectAnswersPrev(getItem(position).getLevel());

            String correct = Integer.toString(correctAnswers);

            levelScore.setText(correct + "/60");
            level.setTypeface(font);
            levelScore.setTypeface(font);

            LinearLayout ln = (LinearLayout) mView.findViewById(R.id.lineScoreTotal);
            ln.setLayoutParams(new FrameLayout.LayoutParams(10, 10));
}
        return mView;
    }
两种方法都行

无重力时

ln.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
ln.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f));
或重力作用下

ln.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
ln.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f));

尝试使用LayoutParams进行设置。

谢谢,但我遇到了以下错误:10-03 12:41:17.394:E/AndroidRuntime(27008):java.lang.ClassCastException:android.view.ViewGroup$LayoutParamsgetWindowManager().getDefaultDisplay().getWidth()//尝试这种方法计算宽度您认为是导致错误的原因吗?假设我只输入ln.setLayoutParams(newlinearLayout.LayoutParams(10,10));我仍然收到错误…你能粘贴getview方法吗?我编辑了我的初始问题并将getview方法放在那里。同样谢谢你,但我遇到了与上面相同的错误:10-03 12:41:17.394:E/AndroidRuntime(27008):java.lang.ClassCastException:android.view.ViewGroup$LayoutParam是否可以粘贴堆栈跟踪?我希望你的意思是:10-03 12:50:24.121:E/AndroidRuntime(27724):致命异常:main 10-03 12:50:24.121:E/AndroidRuntime(27724):java.lang.ClassCastException:android.view.ViewGroup$LayoutParams 10-03 12:50:24.121:E/AndroidRuntime(27724):在android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1303)10-03 12:50:24.121:E/AndroidRuntime(27724):在android.widget.RelativeLayout$DependencyGraph.GetSortedView(RelativeLayout.java:1250)10-03 12:50:24.121:E/AndroidRuntime(27724):在android.widget.RelativeLayout.sortChildren(RelativeLayout.java:281)
ln.setLayoutParams(new
       LayoutParams(widthScoreBar,LayoutParams.WRAP_CONTENT));