먼저 XML
<? Xml version = “1.0″ encoding = “utf-8″?>
<RelativeLayout xmlns: android = “http://schemas.android.com/apk/res/android”
android: orientation = “vertical”
the android: layout_width = “fill_parent The
android: layout_height = “fill_parent The
android: background = “55 million”
>
<ImageSwitcher// this control with the Gallery often used, remember
android: id = “@ + the id/in switcher ‘”
the android: layout_width = “wrap_content The
android: layout_height = “350dip The
android: layout_alignParentLeft = “true”
android: layout_alignParentRight = “true”
/>
< Gallery
android: id = “@ + id/mygallery”
the android: layout_width = “fill_parent The
android: layout_height = “80dp”
android: layout_alignParentBottom = “true”
android: layout_alignParentLeft = “true”
android: gravity = “center_vertical”
android: spacing = “16dp”
/>
</ RelativeLayout>
두에게 정의의 도움 바랍니다
이 그것을 읽어 내 코드입니다 필요합니다. 사용자 정의 디스플레이
package com.ldci.second.mypnone;
import java.io.File;
import java.util.ArrayList;
import of java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import the android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewSwitcher;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery.LayoutParams;
public class BgPictureShowActivity extends Activity implements
AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {
the private List <String> the ImageList;
private String [] list;
private ImageSwitcher mSwitcher;
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
//// Remove the status bar, and display their own program name
// GetWindow(). SetFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView (R.layout.pictureshow);
The ImageList the getSD();
list = ImageList.toArray (new String [ImageList.size()]);
/* Set the Switcher */
mSwitcher = (ImageSwitcher) findViewById (R.id.switcher);
mSwitcher.setFactory (this);
/* Set the load Switcher mode */
mSwitcher.setInAnimation (AnimationUtils.loadAnimation (this,
android.R.anim.fade_in));
/* Set output Switcher mode */
mSwitcher.setOutAnimation (AnimationUtils.loadAnimation (this,
android.R.anim.fade_out));
mSwitcher.setOnClickListener (new OnClickListener() {
public void onClick (View v) the {
Toast.makeText (BgPictureShowActivity.this, “click”, Toast.LENGTH_SHORT). The show();
}
});
Gallery g = (Gallery) findViewById (R.id.mygallery);
/* Add several ImageAdapter to and set to the Gallery object */
g.setAdapter (new ImageAdapter (this, getSD()));
g.setOnItemSelectedListener (this);
/* Set a itemclickListener event */
g.setOnItemClickListener (new OnItemClickListener()
{
public void the onItemClick (AdapterView, which <?> parent,
View v, int position, long id)
{
Toast.makeText (BgPictureShowActivity.this, “dianjiale”, Toast.LENGTH_SHORT). Show();
}
});
}
private List <String> getSD()
{
/* Set the current path */
The the List <String> it = the new ArrayList <String>();
File f = new File (“/ sdcard /”);
File [] files = f.listFiles();
/* All the files stored in the ArrayList */
for (int i = 0; i <files.length; i + +)
{
The File the file = files [i];
if (getImageFile (file.getPath()))
it.add (file.getPath());
}
return it;
}
private boolean getImageFile (String fName)
{
a boolean the re;
/* Get the extension */
String end = fName.substring (fName.lastIndexOf (“.”) +1,
fName.length()). toLowerCase();
/* Decided by the type of extension The MimeType */
if (end.equals (“jpg”) | | end.equals (“gif”) | | end.equals (“png”)
| | End.equals (“jpeg”) | | end.equals (“bmp”))
{
re = true;
}
else
{
re = false;
}
return the re;
}
/* To rewrite BaseAdapter custom one ImageAdapter class */
public class ImageAdapter the extends BaseAdapter,
{
/* Declare variables */
int mGalleryItemBackground;
private Context mContext;
private the List <String> of lis;
/* ImageAdapter, constructed character */
the public ImageAdapter (Context c, the List <String> li)
{
mContext = c;
of lis = li;
/* Res/values / attrs.xml <declare-styleable> defined
* Gallery attribute */
TypedArray a = obtainStyledAttributes (R.styleable.Gallery);
/* Obtain attribute Gallery Index id */
mGalleryItemBackground = a.getResourceId (
R.styleable.Gallery_android_galleryItemBackground, 0);
/* Let the object styleable properties can be used repeatedly */
a.recycle();
}
/* A few set to rewrite the getCount, the number of returned images */
public int the getCount()
{
return lis.size();
}
/* Must override the method getItem, returns the position */
Public Object getItem (int position)
{
the return position;
}
/* Must be rewritten getItemId pass and position */
public long getItemId (int position)
{
the return position;
}
/* A few set to rewrite the method getView pass and View objects */
public View getView (int position, View convertView,
Of ViewGroup that the parent)
{
/* Generate the ImageView object */
ImageView i = new ImageView (mContext);
/* Set the picture to imageView object */
Bitmap bm = BitmapFactory.decodeFile (lis.
get (position). toString());
i.setImageBitmap (bm);
/* Reset the image width and height */
i.setScaleType (ImageView.ScaleType.FIT_XY);
/* Reset the Layout of the width and height */
i.setLayoutParams (new Gallery.LayoutParams (136, 88));
/* Set the Gallery background images */
i.setBackgroundResource (mGalleryItemBackground);
/* Pass back to imageView object */
return i;
}
}
public void onItemSelected (AdapterView <?> parent, View view, int position,
long id) {
The string photoURL = list [position];
Log.i (“A”, String.valueOf (position));
mSwitcher.setImageURI (Uri.parse (photoURL));
}
public void onNothingSelected (AdapterView <?> parent) {
// TODO Auto-generated method the stub
}
public View makeView() {
ImageView i = new ImageView (this);
i.setBackgroundColor (0xFF000000);
i.setScaleType (ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams (new ImageSwitcher.LayoutParams (
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
return i;
}
}
이 코드의 활동은 확실히 두통 플러스 DAN 통증 될 것입니다 볼 수 있지만, 반복 MARS 하나님을 누르고 업계가 인내심을 특징으로 우리를 경고하는 매우 깁니다. 매우 중요한 일이있다, 값 파일 폴더에, 책 내부에 XML을 생성합니다
<? Xml version = “1.0″ encoding = “utf-8″?>
<resources>
<declare-styleable name=”Gallery”>
<attr name=”android:galleryItemBackground” />
</ Declare-styleable
</ Resources>
http://developer.aiwgame.com/gallery-show-an-image-from-android-sd-card.html
정확히 문제는 무엇인가? 아니면 문제가 있습니까? 오류 로그? –
오류가 없지만 화면에 아무런 이미지도 표시하지 않습니다. – moe
왜'ImageView'를'WebView'의 하위로 두 시나요? 이상하게 보입니다! – theomega