`

过期Gallery取代方案horizontalscrollView之普通画廊

阅读更多

activity_main.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_height="match_parent"

    android:orientation="vertical" >

 

    <!-- HorizontalScrollView必须包含子元素才能增加视图 -->

 

    <HorizontalScrollView

        android:layout_width="match_parent"

        android:layout_height="match_parent" >

 

        <LinearLayout

            android:id="@+id/mygallery"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:orientation="horizontal" />

    </HorizontalScrollView>

 

</LinearLayout>

 

MainActivity.java

-------------------------------------------------------------------------------------------------------------------------------

package com.horizontalscrollView;

 

import java.lang.reflect.Field;

import java.util.ArrayList;

import android.app.Activity;

import android.os.Bundle;

import android.util.DisplayMetrics;

import android.view.Gravity;

import android.view.View;

import android.view.ViewGroup.LayoutParams;

import android.widget.ImageView;

import android.widget.LinearLayout;

/**

 * 

 * 项目名称:com.horizontalscrollView   

 * 类  名  称:MainActivity   

 * 类  描  述:HorizontalScrollView代替gallery效果   

 * 创  建  人:fy   

 * 创建时间:2014-3-17 下午10:36:10   

 * Copyright (c) 方勇-版权所有

 */

public class MainActivity extends Activity {

 

private LinearLayout myGallery;

/* 图片ID集合 */

private static ArrayList<Integer> images = new ArrayList<Integer>();

/* 屏幕宽度(像素) */

private int width;

/* 屏幕高度(像素) */

private int height;

/* 屏幕密度(0.75 / 1.0 / 1.5) */

private float density;

/* 屏幕密度DPI120 / 160 / 240) */

private int densityDpi;

 

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setImages();

setScreens();

findViews();

initdata();

}

 

private void findViews() {

myGallery = (LinearLayout) findViewById(R.id.mygallery);

}

 

private void initdata() {

for (Integer id : images) {

myGallery.addView(insertImage(id));

}

}

 

// 用反射机制来获取资源中的图片ID

private void setImages() {

Field[] fields = R.drawable.class.getDeclaredFields();

for (Field field : fields) {

if (!"icon".equals(field.getName())) {

int index = 0;

try {

index = field.getInt(R.drawable.class);

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

// 保存图片ID

images.add(index);

}

}

}

 

/* 手机屏幕属性 */

private void setScreens() {

// 定义DisplayMetrics 对象

DisplayMetrics metric = new DisplayMetrics();

// 取得窗口属性

getWindowManager().getDefaultDisplay().getMetrics(metric);

width = metric.widthPixels; // 屏幕宽度(像素)

height = metric.heightPixels; // 屏幕高度(像素)

density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5

densityDpi = metric.densityDpi; // 屏幕密度DPI120 / 160 / 240

}

 

private View insertImage(Integer id) {

LinearLayout layout = new LinearLayout(getApplicationContext());

layout.setLayoutParams(new LayoutParams(width, height));

layout.setGravity(Gravity.CENTER);

 

ImageView imageView = new ImageView(getApplicationContext());

imageView.setLayoutParams(new LayoutParams(width, height));

imageView.setBackgroundResource(id);

 

layout.addView(imageView);

return layout;

}

}

 

效果

-------------------------------------------------------------------------------------------------------------------------------

 

 

<!--EndFragment-->
  • 大小: 137.6 KB
  • 大小: 163.2 KB
  • 大小: 131 KB
分享到:
评论

相关推荐

    HorizontalScrollView实现Gallery

    总的来说,HorizontalScrollView实现Gallery的方法是一种复用现有组件并进行定制的方式,它可以帮助开发者在不使用已被弃用的Gallery组件的情况下,实现类似的功能。这不仅有助于保持代码的兼容性,还能利用...

    gallery模拟horizontalscrollview效果

    要模拟`Gallery`的效果,我们可以使用`HorizontalScrollView`或`RecyclerView`。下面分别介绍这两种方法: 1. **使用HorizontalScrollView**: - `HorizontalScrollView`是一个可以容纳单个子视图并支持水平滚动的...

    Android HorizontalScrollView实现横向Gallery

    然而,Gallery已在Android API Level 17中被弃用,开发者被推荐使用其他替代方案,如RecyclerView或HorizontalScrollView。HorizontalScrollView则是一个更基础的视图容器,它可以容纳一个或者多个水平排列的子视图...

    031_android UI组件之 Gallery画廊控件

    "Gallery画廊控件"是Android SDK中一个独特的视图组件,它允许用户在一个水平滚动的列表中展示项目,通常用于图片或选择项的浏览。在本教程中,我们将深入探讨Gallery控件的用法、属性以及如何自定义它。 首先,...

    Android 自定义 HorizontalScrollView 打造超强 Gallery效果 完整实例源码

    在这个特定的实例中,我们将探讨如何通过自定义HorizontalScrollView打造一个强大的Gallery效果。 Gallery组件在早期版本的Android API中被广泛用于展示一系列的图片或元素,用户可以左右滑动来浏览。然而,随着...

    HorizontalScrollView代替Gallery

    HorizontalScrollView用于布局的容器,可以放置让用户使用滚动条查看的视图层次结构,允许视图结构比手机的屏幕大.。HorizontalScrollView 是一种 框架布局, 这意味着你可以将包含要滚动的完整内容的子视图放入该...

    HorizontalScrollView

    HorizontalScrollView是Android开发中一种特殊的视图容器,用于展示可以水平滚动的内容。它允许用户在水平方向上浏览多个视图,比如图片、按钮或者其他的UI元素。与常见的ListView不同,HorizontalScrollView通常...

    Android ViewPager与仿Gallery的HorizontalScrollView互相滑动监听

    在Android开发中,`ViewPager`和仿`Gallery`的`HorizontalScrollView`是两种常见的滚动视图组件。`ViewPager`主要用于实现页面间的滑动切换,通常用于实现类似TabLayout的效果;而`HorizontalScrollView`则允许用户...

    horizontalscrollView

    在Android开发中,`HorizontalScrollView`是一个非常实用的布局组件,它允许用户通过水平滑动来查看超过屏幕宽度的内容。这个组件通常用于实现图片轮播、菜单滚动等效果。在这个"horizontalscrollView"项目中,我们...

    安卓Gallery照片墙画廊图库相关-画廊试图Gallery.rar

    在Android开发中,"画廊试图Gallery"是一个常见的组件,用于展示图像集合,让用户能够浏览并选择图片。这个RAR文件包含的资源可能是一个示例项目,用于演示如何创建和使用自定义的Gallery视图。虽然无法一一验证每个...

    HorizontalScrollView创建的Gallery

    在本例中,"HorizontalScrollView 创建的 Gallery" 指的是利用 HorizontalScrollView 来实现类似传统 Gallery 组件的效果。在 Android 的早期版本中,Gallery 是一个可以左右滑动来浏览多个项目的控件,但在后来的...

    画廊gallery

    在Android开发中,"画廊"(Gallery)是一种常见的组件,用于展示图片或者选择多项内容。这个名为"画廊gallery"的项目很可能是提供了一个简单的Android应用实例,用于实现一个可滚动浏览图片的画廊功能。下面将详细...

    Android 自定义 HorizontalScrollView 替代Gallery

    与普通的ScrollView不同,ScrollView默认是垂直滚动,而HorizontalScrollView则支持水平方向的滚动。 在创建自定义HorizontalScrollView时,我们通常会重写onMeasure()和onLayout()方法,以实现特定的滚动行为和...

    Android代码-画廊试图Gallery.rar

    需要注意的是,Gallery组件在Android API 26(Oreo)之后已被弃用,开发者应转向使用`RecyclerView`或其他替代方案,如`HorizontalScrollView`配合`SnapHelper`。 在提供的源码中,"本源码使用帮助.txt"可能包含了...

    HorizontalScrollView横向显示Demo

    HorizontalScrollView是Android开发中一种特殊的视图容器,它允许用户水平滚动一组子视图,比如在有限的屏幕空间内展示多个按钮或者图片。这个“HorizontalScrollView横向显示Demo”旨在教授如何在Android应用中有效...

    无限滚动的HorizontalScrollView

    HorizontalScrollView是Android SDK中提供的一种视图容器,它允许用户水平滑动一组子视图,类似于ScrollView在垂直方向上的操作。在这个"无限滚动的HorizontalScrollView"项目中,开发者尝试实现了一个特殊的滚动...

    HorizontalScrollView 横向滑动完美解决

    在Android开发中,`HorizontalScrollView`是一个非常重要的布局组件,它允许用户在水平方向上滚动内容,这在创建横向滑动菜单、轮播图或图片画廊等场景中非常常见。本教程将深入探讨如何利用`HorizontalScrollView`...

    Android3D画廊Gallery实现无限循环和自动跳转

    本教程将深入讲解如何在Android应用中实现一个3D画廊(Gallery)组件,支持无限循环、自动跳转以及倒影效果。 首先,我们需要理解`Gallery`组件。`Gallery`是Android提供的一个HorizontalScrollView的扩展,用于...

Global site tag (gtag.js) - Google Analytics