zoukankan      html  css  js  c++  java
  • GridView规则显示图片

    首先是自定义的GridVIew,ListView嵌套GridVIew时必须自定义GridVIew,不嵌套时可以不用。这里的GridView会根据图片多少自动调节大小

    //自定义的GridView ,以后可以直接把这个类粘过去用
    public
    class GridViewEx extends GridView { private OnTouchInvalidPositionListener onTouchInvalidPositionListener; public GridViewEx(Context context) { super(context); } public GridViewEx(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } @Override public boolean onTouchEvent(MotionEvent ev) { //先创建一个监听接口,一旦点击了无效区域,便实现onTouchInvalidPosition方法,返回true or false来确认是否消费了这个事件 if(onTouchInvalidPositionListener!=null){ if(!isEnabled()){ return isClickable()||isLongClickable(); } int motionPosition = pointToPosition((int)ev.getX(), (int)ev.getY()); if(ev.getAction()==MotionEvent.ACTION_UP&&motionPosition == INVALID_POSITION){ super.onTouchEvent(ev); return onTouchInvalidPositionListener.onTouchInvalidPosition(motionPosition); } } return super.onTouchEvent(ev); } public void setOnTouchInvalidPositionListener( OnTouchInvalidPositionListener onTouchInvalidPositionListener) { this.onTouchInvalidPositionListener = onTouchInvalidPositionListener; } public interface OnTouchInvalidPositionListener{ public boolean onTouchInvalidPosition(int motionEvent); } }

    这是布局中的GridVIew:

    //每张图片宽为90dp,GirdView的大小根据图片数量自适应,如果没有图片,那么GridVIew就相当于没有了
    <
    com.antuweb.track.tracker.ui.GridViewEx android:id="@+id/gv_squre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:columnWidth="90dp" android:focusable="false" android:gravity="center_horizontal" android:horizontalSpacing="1dip" android:numColumns="auto_fit" android:stretchMode="columnWidth" //拉伸模式 android:verticalSpacing="1dip" />

    这是GridView的条目布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    
        <ImageView
            android:id="@+id/iv_gv_item_squre"
            android:layout_width="match_parent"
            android:layout_height="110dp"
            android:scaleType="centerCrop" />
    
    </LinearLayout>

    通过这两个布局,那么就可以很规则的显示图片,大图显示成缩略图没问题,但是缩略图显示出来就有问题,还待解决。

    结果图:

  • 相关阅读:
    模拟死锁
    B站学习斯坦福大学Swift 语言教程 iOS11 开发【第一集】踩到的几个坑(XCode 13.2.1版本)
    数学之美番外篇:平凡而又神奇的贝叶斯方法
    joj 1753: Street Numbers
    二叉树的三种遍历(递归+非递归)
    joj 1905: Freckles
    joj 2630: A Pair of Graphs(同构图的判定)
    vue3.x 中获取dom元素
    defineProperty 和 Proxy 的区别
    vue 按钮的防抖和节流
  • 原文地址:https://www.cnblogs.com/android-yus/p/5106462.html
Copyright © 2011-2022 走看看