EX05_13.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:5k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex05_13;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import android.app.Activity;
  5. import android.app.AlertDialog;
  6. import android.content.Context;
  7. import android.content.DialogInterface;
  8. import android.content.res.Resources;
  9. import android.content.res.TypedArray;
  10. import android.os.Bundle;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.widget.AdapterView;
  14. import android.widget.BaseAdapter;
  15. import android.widget.Gallery;
  16. import android.widget.ImageView;
  17. import android.widget.Toast;
  18. public class EX05_13 extends Activity
  19. {
  20.   protected static InputStream is;
  21.   private ImageAdapter mImageAdapter01;
  22.   
  23.   /** Called when the activity is first created. */
  24.   @Override
  25.   public void onCreate(Bundle savedInstanceState) 
  26.   {
  27.     super.onCreate(savedInstanceState);
  28.     setContentView(R.layout.main);
  29.       
  30.     /*设置图档*/
  31.     Integer[] myImageIds = 
  32.     {
  33.       R.drawable.google,
  34.       R.drawable.helloking,
  35.       R.drawable.chamberlain,
  36.       R.drawable.king,
  37.       R.drawable.with,
  38.     };
  39.     
  40.     mImageAdapter01 = new ImageAdapter(EX05_13.this, myImageIds);
  41.     
  42.     /*设置图为Gallery的显示方式*/
  43.     Gallery g = (Gallery) findViewById(R.id.mygallery);
  44.     g.setAdapter(mImageAdapter01);
  45.     
  46.     g.setOnItemClickListener(new Gallery.OnItemClickListener()
  47.     {
  48.       @Override
  49.       public void onItemClick
  50.       (AdapterView<?> parent, View v, final int position, long id)
  51.       {
  52.         // TODO Auto-generated method stub 
  53.         new AlertDialog.Builder(EX05_13.this)
  54.         .setTitle(R.string.app_about)
  55.         /*设置弹出窗口的图式*/
  56.         .setIcon(mImageAdapter01.myImageIds[position]) 
  57.         /*设置弹出窗口的信息*/
  58.         .setMessage(R.string.app_about_msg)
  59.         /*确认窗口*/
  60.         .setPositiveButton(R.string.str_ok,
  61.         new DialogInterface.OnClickListener()
  62.         {
  63.           public void onClick(
  64.           DialogInterface dialoginterface, int i)
  65.           {           
  66.             Resources resources = getBaseContext().getResources();
  67.             is = resources.openRawResource
  68.             (mImageAdapter01.myImageIds[position]);
  69.             try
  70.             {
  71.               /*更换桌面*/
  72.               setWallpaper(is);
  73.               /*用Toast来显示桌面已更换*/
  74.               Toast.makeText
  75.               (
  76.                 EX05_13.this,
  77.                 getString(R.string.my_gallery_text_pre),
  78.                 Toast.LENGTH_SHORT
  79.               ).show();
  80.             }
  81.             catch (Exception e)
  82.             {            
  83.               e.printStackTrace();
  84.             };
  85.           }
  86.         }).setNegativeButton
  87.         (R.string.str_no, new DialogInterface.OnClickListener()
  88.         {
  89.           /*设置跳出窗口的返回事件*/
  90.           public void onClick(DialogInterface dialoginterface, int i)   
  91.           {
  92.             /*用Toast来显示桌面已取消*/
  93.             Toast.makeText
  94.             (
  95.               EX05_13.this,
  96.               getString(R.string.my_gallery_text_no),
  97.               Toast.LENGTH_SHORT
  98.             ).show();  
  99.           }
  100.         }).show(); 
  101.       }
  102.     });
  103.   }
  104.   
  105.   public class ImageAdapter extends BaseAdapter
  106.   {
  107.     int mGalleryItemBackground;
  108.     private Context mContext;
  109.     private Integer[] myImageIds;
  110.     
  111.     public ImageAdapter(Context c, Integer[] aid)
  112.     {
  113.       mContext = c;
  114.       myImageIds = aid;
  115.       TypedArray a = obtainStyledAttributes(R.styleable.Gallery);
  116.       mGalleryItemBackground = a.getResourceId
  117.       (
  118.         R.styleable.Gallery_android_galleryItemBackground, 0
  119.       );
  120.       a.recycle();
  121.     }
  122.     
  123.     @Override
  124.     public int getCount()
  125.     {
  126.       // TODO Auto-generated method stub
  127.       return myImageIds.length;
  128.     }
  129.     
  130.     @Override
  131.     public Object getItem(int  position)
  132.     {
  133.       // TODO Auto-generated method stub
  134.       return null;
  135.     }
  136.     @Override
  137.     public long getItemId(int  position)
  138.     {
  139.       // TODO Auto-generated method stub
  140.       return position;
  141.     }
  142.     @Override
  143.     public View getView
  144.     (int position, View convertView, ViewGroup parent)
  145.     {
  146.       // TODO Auto-generated method stub
  147.       
  148.       /*产生ImageView对象*/
  149.       ImageView i = new ImageView(mContext);
  150.       /*设置图片给imageView对象*/
  151.       i.setImageResource(myImageIds[position]);
  152.       /*重新设置图片的宽高*/
  153.       i.setScaleType(ImageView.ScaleType.FIT_XY);
  154.       /*重新设置Layout的宽高*/
  155.       i.setLayoutParams(new Gallery.LayoutParams(138, 108));
  156.       /*设置Gallery背景图*/
  157.       i.setBackgroundResource(mGalleryItemBackground);
  158.       /*返回imageView对象*/
  159.       return i;
  160.     }
  161.   }
  162.   
  163.   @Override
  164.   public void setWallpaper(InputStream data) throws IOException
  165.   {
  166.     // TODO Auto-generated method stub
  167.     super.setWallpaper(data);
  168.   }
  169. }