Android实现为GridView添加边框效果

为GridView添加边框效果,供大家参考,具体内容如下

1.自定义GridView的item样式:

grid_item.xml文件

<?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" >
  <ImageView
    android:id="@+id/item_image"
    android:layout_width="115dp"
    android:layout_height="115dp"
    android:padding="8dp"
    android:background="@drawable/grid_selector"
    />
</LinearLayout>

2.设置GridView item的背景:
grid_selector.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_window_focused="false"
    android:drawable="@drawable/grid_normal" />
  <item android:state_selected="true"
    android:drawable="@drawable/grid_pressed" />
  <item android:state_pressed="true"
    android:drawable="@drawable/grid_pressed" />
</selector> 

3.设置GridView的listSelector为透明:

android:listSelector="@android:color/transparent"

4.自定义GridView的adapter:

import java.util.ArrayList;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView; 

public class GridAdapter extends BaseAdapter {
  private Context mContext = null;
  private LayoutInflater inflater = null;
  private ArrayList<Drawable> drawableList = null; 

  public GridAdapter(Context c) {
    this.mContext = c;
    this.inflater = LayoutInflater.from(mContext);
  }
  public void setDataSource(ArrayList<Drawable> list){
    this.drawableList = list;
  }
  public int getCount() {
    if(drawableList != null){
      return drawableList.size();
    }else{
      return 0;
    }
  } 

  public Object getItem(int position) {
    return drawableList.get(position);
  } 

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

  public View getView(int position, View convertView, ViewGroup parent) { 

    ImageView imageView = new ImageView(mContext);
    if (convertView == null) {
      convertView = inflater.inflate(R.layout.grid_item, null);
      imageView = (ImageView) convertView.findViewById(R.id.item_image);
      imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
      convertView.setTag(imageView);
    } else {
      imageView = (ImageView) convertView.getTag();
    }
    imageView.setImageDrawable(drawableList.get(position));
    return convertView;
  }
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android TextView(圆弧)边框和背景实例详解

     Android TextView 圆弧 效果图: 布局代码: <TextView android:id="@+id/product_tag" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:singleLine="true" androi

  • android dialog边框去除白色边框实现思路及代码

    使用样式文件,在values 目录下新建styles.xml文件,编写如下代码: 复制代码 代码如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><resources> <style name="dialog" parent="@android:style/Theme.Dialog">

  • Android TextView设置背景色与边框的方法详解

    1.在drawable文件夹下面创建setbar_bg.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >    <!-- 背景色 -->    <solid android:color="#FFE4B5&q

  • Android 圆角边框的实现方式汇总

    首先我将贴出几种实现圆角边框的dmeo程序效果图: 方式一:使用shape元素填充背景,设置圆角/带弧度的角 1.首先在 \res\drawable下新建Shape为根元素的资源文件:corners_bg.xml, 代码如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android&quo

  • Android实现代码画虚线边框背景效果

    实现如下边框效果: 虚线画效果,可以使用Android中的xml来做.下面话不多说,直接上代码: <RelativeLayout android:id="@+id/coupon_popup" android:layout_width="320dp" android:layout_height="200dp" android:layout_margin="20dp" android:gravity="center

  • Android布局实现圆角边框效果

    首先,在res下面新建一个文件夹drawable,在drawable下面新建三个xml文件:shape_corner_down.xml.shape_corner_up.xml和shape_corner.xml,分别是下面两个角是圆角边框,上面两个角是圆角边框,四个角全部是圆角边框. shape_corner_down.xml: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&

  • android开发教程之view组件添加边框示例

    给TextureView添加边框(专业名词为描边),有三种解决方案: 1.设置一个9 patch 的,右边框,中间是空的PNG. 2.自定义一个View,用Canvas画个边框. 3.用Android提供的ShapeDrawable来定义一个边框. 个人比较建议采用第三种方式,原因是因为第三种只要写XML,速度快,占用资源小,代码编写量也少,便于维护. 使用方法如下: 1.定义一个background.xml文件. 复制代码 代码如下: <?xml version="1.0" e

  • Android中EditText如何去除边框添加下划线

    废话不多说了,直接给大家贴代码了. <span style="font-family: Arial, Helvetica, sans-serif;"><?xml version="1.0" encoding="utf-8"?> </span> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  • Android 去掉自定义dialog的白色边框的简单方法

    在value目录下,创建styles.xml文件 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?><resources xmlns:android="http://schemas.android.com/apk/res/android"> <style        name="dialog"        parent="@androi

  • Android实现带有边框的ListView和item的方法

    本文实例讲述了Android实现带有边框的ListView和item的方法.分享给大家供大家参考,具体如下: 想为ListView和item四周添加边框有两种方法: 1.贴一张带有边框效果的背景图 2.自定义Draw的方法 第一种方法较第二种方法更耗系统资源,但是用法简单,只需要一张图设置为相应控件的背景即可,而第二种灵活性好些. 这次是实现带有边框的ListView和item,为此写个简单Demo 学习学习 先看下Demo运行效果吧 下面是主要代码,主要是用到Canvas.drawLine(.

随机推荐