`

Gallery的使用之二

 
阅读更多

定义一个左右滑动的图片,文件图片是写死的 MainActivity

package com.lenovo.halo.gallery;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
//import android.os.LauncherSyncManager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class MainActivity extends Activity {

	private static final String TAG = "MyLauncher";
	private MyHandler m_h;
	private ImageView i;

	   private int[] ids = {
	  R.drawable.p12,
	 R.drawable.p13,
	 R.drawable.p1,
	 R.drawable.p2,
	 R.drawable.p3,
	 R.drawable.p4,
	 R.drawable.p5,
	 R.drawable.p6,
	 R.drawable.p7,
	 R.drawable.p8,
	R.drawable.p9,
	 R.drawable.p10,
	 R.drawable.p11
	// //no5test add img here!!!!!!!
	  };
   	int current = 0;
	 

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		Log.i(TAG, "onCreate");
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		i = (ImageView) findViewById(R.id.image);
 		 
     	i.setImageResource(ids[current]);
		PowerManager a = (PowerManager) getSystemService(Context.POWER_SERVICE);
		WakeLock w = a.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
				| PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
		w.acquire();
		i.setOnTouchListener(new OnTouchListener() {

			@Override
			public boolean onTouch(View arg0, MotionEvent arg1) {
				// TODO Auto-generated method stub
				current++;
				if (current == ids.length) {
					current = 0;
				}
				m_h.removeMessages(1);
				Message message1 = new Message();
				message1.what = 1;
				m_h.sendMessage(message1);

				return false;
			}

		});
		m_h = new MyHandler();
	}

	class MyHandler extends Handler {
		@Override
		public void handleMessage(Message msg) {
			super.handleMessage(msg);

			switch (msg.what) {
			case 1:
				i.setImageResource(ids[current]);
				Log.e(TAG, "current img is" + ids[current] + "id is " + current);
				break;
			}
		}
	}

	@Override
	public boolean onKeyUp(int keyCode, KeyEvent event) {
		Log.e(TAG, "current img is" + ids[current] + "id is " + current
				+ "event is" + event.getAction());
		if (event.getAction() == KeyEvent.ACTION_UP) {
			switch (keyCode) {
			case KeyEvent.KEYCODE_ENTER:
				current++;
				if (current == ids.length) {
					current = 0;
				}

				i.setImageResource(ids[current]);

			default:
				break;
			}
		}
		return super.onKeyDown(keyCode, event);
	}

	@Override
	protected void onPause() {
		Log.i(TAG, "onPause");
		this.finish();
		System.exit(0);
		super.onPause();
	}
}

 定义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"
    tools:context="com.lenovo.halo.gallery.MainActivity" >

    
    <ImageView
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="fitXY" />

    <ImageView
        android:id="@+id/up_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/up"/>

    <ImageView
         android:id="@+id/down_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/down" />

</RelativeLayout>

 以上为直接读取drawable里边的文件图片写死的

 

分享到:
评论

相关推荐

    Android应用源码之Gallery2.zip

    本文将针对"Android应用源码之Gallery2.zip"进行详尽解析。 1. **Gallery组件概述** Gallery是Android提供的一个水平滚动视图,它继承自AbsSpinner类,实现了ListView的水平版。在API 16(Android 4.1)之后,...

    android--Gallery 的基本使用

    本篇文章将深入解析`Gallery`组件的基本使用,以及与其相关的`ImageSwitcher`组件。 首先,我们来看`Gallery`组件。它继承自`AbsSpinner`,并提供了水平滚动的布局方式。`Gallery`通常包含一系列的子视图,如`...

    Gallery+GridView使用的demo

    本示例"Gallery+GridView使用的demo"旨在演示如何在应用程序中有效地结合这两个控件来创建一个图片浏览体验。让我们深入探讨这两个控件以及如何将它们整合到一个项目中。 首先,`Gallery`是一个水平滚动的视图,它...

    Android应用源码之Gallery2_Android.zip

    再者,Gallery2可能使用了ImageView和Bitmap的高效加载策略。在Android中,大图的直接加载可能导致内存溢出,因此通常会采用像LruCache这样的内存缓存或Picasso、 Glide等第三方库进行图片加载优化。通过源码,你...

    Android下Gallery控件的使用

    二、`Gallery`控件的属性 1. `android:animationDuration`:设置项之间切换的动画持续时间(毫秒)。 2. `android:fadingEdgeLength`:设置边缘淡出效果的长度,可以增加滑动的平滑感。 3. `android:spacing`:设置...

    android4.2应用程序源码之Gallery2

    以下是对"android4.2应用程序源码之Gallery2"的详细分析: 1. **相册应用结构**:Gallery2应用程序由多个组件构成,包括Activity、Adapter、Fragment和Service等。这些组件共同协作,实现图片和视频的浏览、选择、...

    Android4.4图库Gallery2源码

    《深入解析Android 4.4图库Gallery2源码》 Android 4.4系统中的图库应用Gallery2是一款至关重要的组件,它负责管理和展示用户的媒体文件,包括图片和视频。相较于之前的版本,Gallery2在功能和性能上都有显著的变化...

    Gallery使用方法

    #### 二、Gallery的基本使用步骤 1. **声明Gallery控件** 在布局文件中添加`&lt;Gallery&gt;`标签,并设置其ID。例如: ```xml &lt;Gallery android:id="@+id/galleryDetail" android:layout_width="match_parent" ...

    Gallery用法实例

    2. 创建适配器:`Gallery`需要一个`Adapter`来填充数据,通常使用`ArrayAdapter`或自定义`Adapter`。 ```java ArrayList&lt;String&gt; dataList = new ArrayList(); // 添加数据... Gallery gallery = findViewById(R.id....

    使用Gallery做出图片层叠效果

    在Android开发中,`Gallery`控件是一种古老但功能强大的组件,主要用于展示一系列的视图...不过需要注意,Android在后来的版本中已经弃用了`Gallery`控件,建议使用`RecyclerView`或`ViewPager`等更现代的组件来替代。

    Android Gallery2

    但在实际应用中,由于Android系统的演进,Gallery2在新的API级别中已经被Gallery3D(RecyclerView)所取代,因此开发者应考虑使用更现代的组件以获得更好的性能和兼容性。 优化Gallery2的方法包括:减少滑动冲突、...

    Gallery使用教程——尝试翻译一篇Android SDK Reference

    这篇博客“Gallery使用教程——尝试翻译一篇Android SDK Reference”可能详细解释了如何在应用中集成并使用这个组件。由于没有具体的博客内容,我将根据一般知识和Android SDK的相关信息,提供一个关于Gallery组件的...

    Gallery 3D效果

    代码可能包括自定义的Gallery子类,以及与之相关的布局文件和资源。通过分析和调试这些代码,可以加深对Android图形和动画系统的理解,从而在自己的应用中实现类似的复杂效果。 总的来说,"Gallery 3D效果"涉及了...

    Gallery2源码流程说明

    #### 二、Gallery2数据获取与加载方式 在理解Gallery2的工作原理之前,我们需要明确一点,即Gallery2的整体架构设计中只有一个Activity组件负责界面的展示。为了实现不同页面的切换效果,它采用了模拟Activity状态...

    Android应用源码之Gallery_Gallery.zip

    总之,通过分析和学习"Android应用源码之Gallery_Gallery.zip",你可以了解到Android Gallery组件的内部运作,这对于开发自定义的图片浏览或选择功能是非常有帮助的。同时,这也是一次提升Android UI组件理解和性能...

    安卓Android源码——Gallery2.rar

    其次,Gallery2可能使用了ContentProvider来获取和管理用户的图片数据。ContentProvider是Android四大组件之一,负责数据的存储和共享。通过查询MediaStore的内容提供者,Gallery2可以获取到设备上的所有图片信息,...

    Android应用源码之Gallery1_Gallery.zip

    2. **Adapter**:Gallery控件需要一个Adapter来填充数据,比如ImageView或其他自定义视图。Adapter类(如ArrayAdapter或CursorAdapter)负责将数据项转化为可以在Gallery中显示的视图。 3. **...

    Android 之 Gallery画廊用法

    2. 创建一个适配器(通常继承自`BaseAdapter`)来填充`Gallery`的内容: ```java public class ImageAdapter extends BaseAdapter { private Context context; private List&lt;Integer&gt; imageIDs; public ...

    Gallery循环删除图片

    在Android开发中,"Gallery循环删除图片"是一个常见的需求,主要涉及到 Gallery 组件的使用、Java反射机制的应用以及图片管理。下面将详细讲解这些知识点。 首先,Gallery 是 Android 提供的一种特殊的视图组件,...

Global site tag (gtag.js) - Google Analytics