• 【自定义控件】 GridView


        <cn.com.karl.view.MyGridView
            android:id="@+id/bookShelf"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@id/head"
            android:cacheColorHint="#00000000"
            android:columnWidth="90.0dip"
            android:fadingEdge="none"
            android:horizontalSpacing="5dp"
            android:listSelector="#00000000"
            android:numColumns="3"
            android:scrollbars="none"
            android:verticalSpacing="20dp" />
    public class MyGridView extends GridView {
    
        private Bitmap background;
    
        public MyGridView(Context context, AttributeSet attrs) {
            super(context, attrs);
            background = BitmapFactory.decodeResource(getResources(),
                    R.drawable.bookshelf_layer_center);
        }
    
        @Override
        protected void dispatchDraw(Canvas canvas) {
            int count = getChildCount();
            int top = count > 0 ? getChildAt(0).getTop() : 0;
            int backgroundWidth = background.getWidth();
            int backgroundHeight = background.getHeight() + 2;
            int width = getWidth();
            int height = getHeight();
    
            for (int y = top; y < height; y += backgroundHeight) {
                for (int x = 0; x < width; x += backgroundWidth) {
                    canvas.drawBitmap(background, x, y, null);
                }
            }
            super.dispatchDraw(canvas);
        }
    
    }
    public class CopyOfBookShelfActivity extends BaseActivity {
        private GridView bookShelf;
        private int[] data = { R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
                R.drawable.cover_txt, R.drawable.cover_txt
    
        };
        private String[] name = { "天龙八部", "搜神记", "水浒传", "黑道悲情" };
        private GridView gv;
        private Button iv;
        private List<ResolveInfo> apps;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.main);
    
            bookShelf = (GridView) findViewById(R.id.bookShelf);
            ShlefAdapter adapter = new ShlefAdapter();
            bookShelf.setAdapter(adapter);
            bookShelf.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    if (arg2 >= data.length) {
    
                    } else {
                        Toast.makeText(getApplicationContext(), "" + arg2,
                                Toast.LENGTH_SHORT).show();
                    }
                }
            });
            loadApps();
            gv = (GridView) findViewById(R.id.allApps);
            iv = (Button) findViewById(R.id.imageViewIcon);
            gv.setAdapter(new GridAdapter());
        }
    
        class ShlefAdapter extends BaseAdapter {
            @Override
            public int getCount() {
                return data.length + 5;
            }
            @Override
            public Object getItem(int arg0) {
                return arg0;
            }
            @Override
            public long getItemId(int arg0) {
                return arg0;
            }
            @Override
            public View getView(int position, View contentView, ViewGroup arg2) {
                contentView = LayoutInflater.from(getApplicationContext()).inflate(
                        R.layout.item1, null);
                TextView view = (TextView) contentView
                        .findViewById(R.id.imageView1);
                if (data.length > position) {
                    if (position < name.length) {
                        view.setText(name[position]);
                    }
                    view.setBackgroundResource(data[position]);
                } else {
                    view.setBackgroundResource(data[0]);
                    view.setClickable(false);
                    view.setVisibility(View.INVISIBLE);
                }
                return contentView;
            }
    
        }
    
        private void loadApps() {
            Intent intent = new Intent(Intent.ACTION_MAIN, null);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            apps = getPackageManager().queryIntentActivities(intent, 0);
        }
    
        public class GridAdapter extends BaseAdapter {
            public GridAdapter() {
            }
    
            public int getCount() {
                return apps.size();
            }
    
            public Object getItem(int position) {
                return apps.get(position);
            }
    
            public long getItemId(int position) {
                return position;
            }
    
            public View getView(int position, View convertView, ViewGroup parent) {
    
                ImageView imageView = null;
                if (convertView == null) {
                    imageView = new ImageView(CopyOfBookShelfActivity.this);
                    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                    imageView.setLayoutParams(new GridView.LayoutParams(50, 50));
                } else {
                    imageView = (ImageView) convertView;
                }
                ResolveInfo ri = apps.get(position);
                imageView.setImageDrawable(ri.activityInfo
                        .loadIcon(getPackageManager()));
                return imageView;
            }
        }
    
    }

    完整代码下载地址:http://download.csdn.net/detail/androidsj/5336085

  • 相关阅读:
    2019-9-2-正则表达式30分钟入门教程
    2019-6-23-开源项目使用-appveyor-自动构建
    2019-8-29-dotnet-core-使用-sqlite-部署到-Centos-服务器
    2018-10-19-Roslyn-使用-Directory.Build.props-文件定义编译
    2019-4-29-dotnet-通过-WMI-获取系统安装软件
    2018-12-24-win10-uwp-求两个矩形相连的几何
    shell公共函数functions
    linux防火墙和SELinux
    ubuntu开启ssh
    文件夹操作
  • 原文地址:https://www.cnblogs.com/androidsj/p/3062774.html
Copyright © 2020-2023  润新知