溫馨提示×

android gridview里怎么加進度條

小億
103
2024-01-27 11:46:02
欄目: 編程語言

在Android GridView中添加進度條可以通過自定義Adapter來實現。以下是一個簡單示例:

首先,創建一個自定義的Adapter類,繼承自BaseAdapter:

public class CustomAdapter extends BaseAdapter {
    private Context mContext;
    private List<String> mData;
    private LayoutInflater mInflater;

    public CustomAdapter(Context context, List<String> data) {
        mContext = context;
        mData = data;
        mInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return mData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.grid_item, parent, false);
            viewHolder = new ViewHolder();
            viewHolder.progressBar = convertView.findViewById(R.id.progress_bar);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        // 設置進度條的進度
        viewHolder.progressBar.setProgress(mData.get(position).getProgress());

        return convertView;
    }

    private static class ViewHolder {
        ProgressBar progressBar;
    }
}

然后,在grid_item.xml布局文件中添加一個進度條:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>

最后,在Activity中使用GridView并設置Adapter:

public class MainActivity extends AppCompatActivity {
    private GridView mGridView;
    private CustomAdapter mAdapter;
    private List<String> mData = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化數據
        for (int i = 0; i < 10; i++) {
            mData.add(new ProgressItem(i * 10)); // 這里的ProgressItem是一個自定義的類,用于表示每個GridView項的進度值
        }

        // 初始化GridView和Adapter
        mGridView = findViewById(R.id.grid_view);
        mAdapter = new CustomAdapter(this, mData);
        mGridView.setAdapter(mAdapter);
    }
}

注意,你需要根據自己的需求修改和完善代碼。這只是一個簡單的示例,你可能需要根據實際情況進行適當的修改和調整。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女