水果的横向布局

MainActivity.java

package com.example.listviewdemo;

import java.util.ArrayList;
import java.util.List;

import com.example.listviewdemo.adapter.FruitAdapter;
import com.example.listviewdemo.entity.Fruit;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

	private GridView gvFruits;
	private List<Fruit> fruitList = new ArrayList<Fruit>();

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

        gvFruits = (GridView) findViewById(R.id.gvFruit);

        getData();
        FruitAdapter fruitAdapter = new FruitAdapter(this, R.layout.listview_item, fruitList);
        gvFruits.setAdapter(fruitAdapter);
        gvFruits.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				// TODO Auto-generated method stub
				Fruit fruit = fruitList.get(position);
				Toast.makeText(MainActivity.this, fruit.getName(), Toast.LENGTH_LONG);
			}
		});
    }

    private void getData(){

    	int[] imageIds = {R.drawable.apple_pic,R.drawable.banana_pic,
    						R.drawable.cherry_pic,R.drawable.grape_pic,
    						R.drawable.mango_pic,R.drawable.orange_pic,
    						R.drawable.pear_pic,R.drawable.pineapple_pic,
    						R.drawable.strawberry_pic,R.drawable.watermelon_pic};
    	String[] names = {"苹果","香蕉","樱桃","葡萄","芒果","橘子","梨","菠萝","草莓","西瓜"};

    	for(int i = 0;i<imageIds.length;i++){
    		fruitList.add(new Fruit(imageIds[i], names[i]));
    	}
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

FruitAdapter.java

package com.example.listviewdemo.adapter;

import java.util.List;

import com.example.listviewdemo.R;
import com.example.listviewdemo.entity.Fruit;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class FruitAdapter extends ArrayAdapter<Fruit> {

	private int resourceId;

	public FruitAdapter(Context context, int textViewResourceId,
			List<Fruit> objects) {
		super(context, textViewResourceId, objects);
		resourceId = textViewResourceId;
	}

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

		View view ;
		ViewHolder viewHolder;

		if(convertView == null){
			view = LayoutInflater.from(getContext()).inflate(resourceId, null);
			viewHolder = new ViewHolder();
			viewHolder.fruitImage = (ImageView)view.findViewById(R.id.ivImage);
			viewHolder.fruitName = (TextView)view.findViewById(R.id.tvName);
			view.setTag(viewHolder);
		}
		else{
			view = convertView;
			viewHolder = (ViewHolder)view.getTag();
		}

		Fruit fruit = getItem(position);

		viewHolder.fruitImage.setImageResource(fruit.getImageId());
		viewHolder.fruitName.setText(fruit.getName());
		return view;
	}

}

class ViewHolder{
	 ImageView fruitImage;
	TextView fruitName;

}

Fruit.java

package com.example.listviewdemo.entity;

public class Fruit {

	private int imageId;
	private String name;
	public int getImageId() {
		return imageId;
	}
	public void setImageId(int imageId) {
		this.imageId = imageId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Fruit(int imageId, String name) {
		super();
		this.imageId = imageId;
		this.name = name;
	}

}

listview_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:src="@drawable/apple_pic"
        />

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

activity_main.xml

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

    <GridView
        android:id="@+id/gvFruit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:numColumns="4" >
    </GridView>

</RelativeLayout>

时间: 2024-08-14 22:21:30

水果的横向布局的相关文章

html横向布局

我们都知道html块级元素默认是垂直排列的,而行内元素时水平排列的,而在布局时基本上都是用块级元素,如div等常用块级标签,那么如何让块级元素也进行水平排列呢? 这里我总结了五种方式,并简单总结了这五种方式的具体实现以及可能存在的问题. 方法1:display:inline-block 首先得先了解块级元素(block elements)和行内元素(inline elements)以及行内块状元素(inline-block elements) 块级元素:块级元素包含width height,pa

win8效果的横向布局

有一个月没写过博客了,自己的博客也没有看过,前段时间一直在忙着写代码,公司有一个制漆的产品,与传统纵向布局不一样,要求页面横向布局,类似win8的那种布局效果,最开始,我也没有什么头绪,然后硬着头皮做了,后来,遇到了很多麻烦,我网上查了一些资料,但都不太好,只好自己做了,在做的过程中,突然想到,flex布局,我就试了一下,成功了 <!doctype html> <head> <style type="text/css"> .scroll{ displ

初识H5横向布局带来的缓存问题

最近有幸接到一个 H5 的活,周五谈好需求,说下周一就要效果出来,乍一看挺简单的,但是做起来就不是那么回事了.接下来说说我的踩坑之路. 一.页面里面要求有一条会自动延长的不规则曲线,就如这样. 运动的曲线.gif 开始我一听甲方说要这种效果,我是不敢接这个活的.大家肯定都知道,这条曲线如果用 canvas 或者 svg 画出来,不得一年也得半载,况且我也只是个初级选手而已,这是会出人命的!好在我问了下我们公司的 UI 大哥,他就回了我一句话: ease!画个 gif 图就好了! 于是乎以为这个最

【Android】13.0 UI开发(四)——列表控件RecyclerView的横向布局排列实现

1.0 新建项目,由于ListView的局限性,RecyclerView是一种很好取代ListView的控件,可以灵活实现多种布局. 2.0 新建项目RecyclerviewTest,目录如下: 3.0 这里需要在app/build.gradle中配置,导入依赖包: dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompa

div (1)div横向布局(2)inline-block 存在间隙的解决方式

Bootstrap3基础 form-horizontal 表单元素横向布局 简单示例

? 内容 参数 ??OS ??Windows 10 x64 ??browser ??Firefox 65.0.2 ??framework?? ??Bootstrap 3.3.7 ??editor ??Visual Studio Code 1.32.1?? ??typesetting ??Markdown ? code <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U

wpf listbox横向布局

<ListBox Grid.Row="1" x:Name="lstStaffs"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBo

UWP开发入门(九)——简单界面的布局技巧及屏幕适应

嘿嘿嘿,题目比较绕哈.本篇主要讨论一般情况下,页面的布局技巧,怎么将元素的展现尽量做到分辨率无关.基本的思路仍然是尽量少的标定具体的数字,而是用比列来标注各元素占据的空间. 这里我打算用易信的名片页来举例: Phone的界面看起来不错,大致以纵向排列.最上方是标题栏,头像部分居中,下面的文字以列表形式靠左对齐,最下部为留白.考虑到标题栏需要锚定在顶部,不参与比例分配.头像,文字和留白的占比大致为2.5:4:3.XAML中的Grid定义如下: <Grid.RowDefinitions> <

autoLayout(相对布局)二

// //  ViewController.m //  UI-AutoLayout. // //  Created by Bruce on 15/9/7. //  Copyright (c) 2015年 Bruce. All rights reserved. //   #import "ViewController.h"   @interface ViewController ()   @end   @implementation ViewController   - (void)vi