最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android入門之Gallery用法實(shí)例解析

 更新時間:2014年08月08日 11:39:42   投稿:shichen2014  
這篇文章主要介紹了Android入門之Gallery用法,對Android初學(xué)者有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

本文實(shí)例介紹的Android的Gallery控件是個很不錯的看圖控件,可以大大減輕開發(fā)者對于看圖功能的開發(fā),并且效果也很美觀。本文實(shí)例中的Gallery的用法,主要實(shí)現(xiàn)用反射機(jī)制來動態(tài)讀取資源中的圖片。

該實(shí)例代碼運(yùn)行的效果圖如下:

 

main.xml源碼如下:

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

Java程序源碼如下:

package com.testImageView; 
 
import java.lang.reflect.Field; 
import java.util.ArrayList; 
 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.BaseAdapter; 
import android.widget.Gallery; 
import android.widget.ImageView; 
import android.widget.AdapterView.OnItemClickListener; 
 
public class testImageView extends Activity { 
  private Gallery mGallery; 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
     
    mGallery = (Gallery)findViewById(R.id.gallery); 
    try { 
      mGallery.setAdapter(new ImageAdapter(this)); 
    } catch (IllegalArgumentException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
    } 
    mGallery.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView parent, View v, int position, long id) { 
        testImageView.this.setTitle(String.valueOf(position)); 
      } 
    }); 
  } 
   
  /* 
   * class ImageAdapter is used to control gallery source and operation. 
   */ 
  private class ImageAdapter extends BaseAdapter{ 
    private Context mContext; 
    private ArrayList<Integer> imgList=new ArrayList<Integer>(); 
    private ArrayList<Object> imgSizes=new ArrayList<Object>(); 
    public ImageAdapter(Context c) throws IllegalArgumentException, IllegalAccessException{ 
      mContext = c; 
       
      //用反射機(jī)制來獲取資源中的圖片ID和尺寸 
      Field[] fields = R.drawable.class.getDeclaredFields(); 
      for (Field field : fields) 
      { 
        if (!"icon".equals(field.getName()))//除了icon之外的圖片 
        {   
          int index=field.getInt(R.drawable.class); 
          //保存圖片ID 
          imgList.add(index); 
          //保存圖片大小 
          int size[]=new int[2]; 
          Bitmap bmImg=BitmapFactory.decodeResource(getResources(),index); 
          size[0]=bmImg.getWidth();size[1]=bmImg.getHeight(); 
          imgSizes.add(size); 
        } 
      } 
    } 
    @Override 
    public int getCount() { 
      // TODO Auto-generated method stub 
 
      return imgList.size(); 
    } 
 
    @Override 
    public Object getItem(int position) { 
      // TODO Auto-generated method stub 
 
      return position; 
    } 
 
    @Override 
    public long getItemId(int position) { 
      // TODO Auto-generated method stub 
 
      return position; 
    } 
 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
 
      ImageView i = new ImageView (mContext); 
      //從imgList取得圖片ID 
      i.setImageResource(imgList.get(position).intValue()); 
      i.setScaleType(ImageView.ScaleType.FIT_XY); 
      //從imgSizes取得圖片大小 
      int size[]= new int[2]; 
      size=(int[]) imgSizes.get(position); 
      i.setLayoutParams(new Gallery.LayoutParams(size[0], size[1])); 
      return i; 
    } 
     
  }; 
}

相關(guān)文章

  • Kotlin?掛起函數(shù)CPS轉(zhuǎn)換原理解析

    Kotlin?掛起函數(shù)CPS轉(zhuǎn)換原理解析

    這篇文章主要為大家介紹了Kotlin?掛起函數(shù)CPS轉(zhuǎn)換原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android Fragment概述及用法

    Android Fragment概述及用法

    本文主要介紹Android Fragment的知識,這里整理了詳細(xì)的資料及重要知識點(diǎn),幫助大家學(xué)習(xí)理解Fragment,有需要的小伙伴可以參考下
    2016-09-09
  • Kotlin中的反射機(jī)制深入講解

    Kotlin中的反射機(jī)制深入講解

    反射,簡單來說,是一種在運(yùn)行時動態(tài)地訪問對象屬性和方法的方式,而不需要事先確定這些屬性是什么。下面這篇文章主要給大家介紹了關(guān)于Kotlin中反射機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2018-11-11
  • Android通過交互實(shí)現(xiàn)貝塞爾曲線的繪制

    Android通過交互實(shí)現(xiàn)貝塞爾曲線的繪制

    本篇我們將介紹簡單的交互式繪圖,通過獲取觸控位置來設(shè)定貝塞爾曲線的控制點(diǎn),從而實(shí)現(xiàn)交互式繪制曲線,感興趣的小伙伴可以了解一下
    2022-05-05
  • android shape實(shí)現(xiàn)陰影或模糊邊效果

    android shape實(shí)現(xiàn)陰影或模糊邊效果

    這篇文章主要介紹了android shape實(shí)現(xiàn)陰影或模糊邊效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Android開發(fā)實(shí)現(xiàn)日期時間控件選擇

    Android開發(fā)實(shí)現(xiàn)日期時間控件選擇

    這篇文章主要為大家詳細(xì)介紹了Android開發(fā)實(shí)現(xiàn)日期時間控件選擇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android入門之Handler的使用教程詳解

    Android入門之Handler的使用教程詳解

    這篇文章主要為大家詳細(xì)介紹了Android中Handler機(jī)制的使用,文中的示例代碼講解詳細(xì),有需要的朋友可以借鑒參考下,希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2022-11-11
  • Android自定義扇形倒計(jì)時實(shí)例代碼

    Android自定義扇形倒計(jì)時實(shí)例代碼

    最近工作中需要做一個倒計(jì)時,是那種一個圓,慢慢的被吃掉的動畫倒計(jì)時,由于自己是android小白,效果還不是多滿意,先給大家分享實(shí)例代碼,僅供大家參考
    2017-03-03
  • Android實(shí)現(xiàn)Toast提示框圖文并存的方法

    Android實(shí)現(xiàn)Toast提示框圖文并存的方法

    這篇文章主要介紹了Android實(shí)現(xiàn)Toast提示框圖文并存的方法,實(shí)例分析了Toast提示框的參數(shù)設(shè)置及圖文調(diào)用的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • Android ToolBar 修改邊距的實(shí)現(xiàn)方法

    Android ToolBar 修改邊距的實(shí)現(xiàn)方法

    這篇文章主要介紹了Android ToolBar 修改邊距的實(shí)現(xiàn)方法的相關(guān)資料,通過此文希望能幫助到大家,需要的朋友可以參考下
    2017-08-08

最新評論

巴塘县| 石台县| 安新县| 都昌县| 南开区| 黄浦区| 邓州市| 雷波县| 东乡县| 临沭县| 平舆县| 民权县| 河东区| 九龙县| 封开县| 井研县| 临湘市| 蒙阴县| 莲花县| 东海县| 察隅县| 湘阴县| 元江| 迭部县| 黄平县| 越西县| 繁峙县| 民乐县| 郸城县| 五寨县| 广东省| 辽源市| 江川县| 建宁县| 深水埗区| 清涧县| 澄迈县| 阿拉善右旗| 伊宁市| 公安县| 肃宁县|