如何在网格视图中单击图像时排列图像视图大小和播放声音



你好,我一直在研究安卓网格视图,我无法以图片的形式排列我的图像视图喜欢这个

在 GridView 上工作后,我只能像这样排列我的图像

无法理解如何做到这一点,而且我想在单击每个按钮后播放不同的声音。

这是网格视图的代码.xml

 <?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:columnWidth="90dp"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:gravity="center"
android:stretchMode="columnWidth" >

这是主活动代码

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_layout);
        GridView gridView = (GridView) findViewById(R.id.grid_view);
        // Instance of ImageAdapter Class
        gridView.setAdapter(new ImageAdapter(this));
    }
}

这是ImageAdapter代码

public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    // Keep all Images in array
    public Integer[] mThumbIds = {
        R.drawable.alif, R.drawable.baa,
        R.drawable.taa, R.drawable.saa,
        R.drawable.raa, R.drawable.jeem,
        R.drawable.zaal, R.drawable.haa,
        R.drawable.zouen, R.drawable.haah,
        R.drawable.zowad, R.drawable.hamza,
        R.drawable.yaa, R.drawable.daal,
        R.drawable.yay
};
// Constructor
public ImageAdapter(Context c){
    mContext = c;
}
@Override
public int getCount() {
    return mThumbIds.length;
}
@Override
public Object getItem(int position) {
    return mThumbIds[position];
}
@Override
public long getItemId(int position) {
    return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.);
    imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
    return imageView;
}

首先使用以下代码创建新项.xml文件:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">
                <ImageView
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:padding="1dp"
                    android:id="@+id/itemimg"
                    android:layout_gravity="center"
                     />
                 </LinearLayout>

那么请像这样更改您的适配器类 GetView 方法:

public View getView(int position, View convertView, ViewGroup parent) {
        View itemView = null;
        LayoutInflater inflater;
        final ViewHolder holder = new ViewHolder();
        if (convertView == null) {
            inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    itemView = inflater.inflate(R.layout.item, null,false); 
                } else {
            itemView = convertView;
    }
    holder.img = (ImageView) itemView.findViewById(R.id.itemimg);
        holder.img.setImageResource(mThumbIds[position]);       
        return itemView;
    }
static class ViewHolder {
        ImageView img;
            }

希望这个帮助

最新更新