2011-04-10 17 views
5

SD Kartımdan bir görüntü okumaya çalışıyorum ve doğru yapıp yapmadığımı bilmiyorum.android SD Karttan bir resim okuma

String imageInSD = "/sdcard/Hanud/" + c.getString(1) + ".PNG"; 
     Bitmap bitmap = BitmapFactory.decodeFile(imageInSD); 
     ImageView myImageView = (ImageView)findViewById(R.id.imageview); 
     myImageView.setImageBitmap(bitmap); 

Ve bu benim ana dosyasıdır:

<?xml version="1.0" encoding="utf-8"?> 
<WebView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

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

    <ImageView 
    android:id="@+id/imageview" 
    android:layout_gravity="center" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scaleType="center" 
    /> 


    <TextView 
    android:id="@+id/myNameText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
</WebView> 
+0

tam sorun nedir? Yoksa bir problem mi var? Herhangi bir hata kaydı –

+0

Hata yok ama ekranda herhangi bir görüntü göstermiyor – moe

+0

'ImageView' nizi neden WebView'in Çocukluğu olarak kullanıyorsunuz? Garip görünüyor! – theomega

cevap

0

ilk 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> 

İki tanımlamak biraz yardım lütfen

Bu okumadan benim kodudur Need. Özel bir ekran

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; 
} 
} 

Bu kod etkinlik kesinlikle bir baş ağrısı artı DAN ağrı olacak görmek için, ama tekrar tekrar MARS Allah'a dayan bu sanayi sabırlı olmayı karakterizedir içinde biz uyardı için çok uzun. çok önemli bir şey yoktur, değerler dosyası klasöründe, kitabın içinde bir xml oluşturmak:

<? 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

8

Olmalıdır:

String imageInSD = Environment.getExternalStorageDirectory().getAbsolutePath() +"/Hanud/" + c.getString(1) + ".PNG"; 
     Bitmap bitmap = BitmapFactory.decodeFile(imageInSD); 
     ImageView myImageView = (ImageView)findViewById(R.id.imageview); 
     myImageView.setImageBitmap(bitmap); 

Bu sizi sağlayacaktır Doğru dizini bul! Bir try/catch bloğu içinde FileInputStream çalıştırmak gerekir

File sdCard = Environment.getExternalStorageDirectory(); 

File directory = new File (sdCard.getAbsolutePath() + "/Pictures"); 

File file = new File(directory, "image_name.jpg"); //or any other format supported 

FileInputStream streamIn = new FileInputStream(file); 

Bitmap bitmap = BitmapFactory.decodeStream(streamIn); //This gets the image 

streamIn.close(); 

:

3

Aşağıdaki kodu kullanabilirsiniz.

0

BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 3;

Bitmap bitmap = BitmapFactory.decodeFile(f.get(position),options); 
0
This is the code 

    public class MainActivity extends AppCompatActivity { 

    private ImageView mImageView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mImageView= (ImageView) findViewById(imageView); 

    } 

    public void openImages(View view) { 
     Intent intent = new Intent(Intent.ACTION_PICK, 
       MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
     intent.setType("image/*"); 
     intent.putExtra("crop", "true"); 
     intent.putExtra("scale", true); 
     intent.putExtra("outputX", 256); 
     intent.putExtra("outputY", 256); 
     intent.putExtra("aspectX", 1); 
     intent.putExtra("aspectY", 1); 
     intent.putExtra("return-data", true); 
     startActivityForResult(intent, 1); 
    } 
    public void openCamera(View view) { 
     Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(cameraIntent, 2); 
    } 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode != RESULT_OK) { 
      return; 
     } 

     if (requestCode == 1) { 
      final Bundle extras = data.getExtras(); 
      if (extras != null) { 
       //Get image 
       Bitmap newProfilePic = extras.getParcelable("data"); 
       mImageView.setImageBitmap(newProfilePic); 

      } 
     } 
     if(requestCode==2){ 
      final Bundle bundle=data.getExtras(); 
      if(bundle !=null){ 
       Bitmap camera_pic=bundle.getParcelable("data"); 
       mImageView.setImageBitmap(camera_pic); 
      } 
     } 
    } 


} 
İlgili konular