首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

切换图片 ImageSwitcher(代码格局)

2012-07-15 
切换图片 ImageSwitcher(代码布局)我们在Windows 平台上要查看多张图片,最简单的办法就是通过 Window 图

切换图片 ImageSwitcher(代码布局)
我们在Windows 平台上要查看多张图片,最简单的办法就是通过 "Window 图片和传真查看器“在 ”下一张“ 和”上一张“之间切换,Android平台上可以通过 ImageSwitcher 类来实现这一效果。ImageSwitcher 类必须设置一个ViewFactory,主要用来将显示的图片和父窗口区分开来,因此需要实现ViewSwitcher.ViewFactory接口,通过makeView()方法来显示图片,这里会返回一个ImageView 对象,而方法 setImageResource用来指定图片资源。首先先让我们看看这个例子的运行效果。


示例
Java代码 
package xiaohang.zhimeng; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageSwitcher; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.ViewSwitcher.ViewFactory; 
 
public class Activity01 extends Activity implements OnClickListener, 
        ViewFactory { 
    // 所有要显示的图片资源索引 
    private static final Integer[] imagelist = { R.drawable.img1, 
            R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, 
            R.drawable.img6, R.drawable.img7, R.drawable.img8, }; 
 
    // 创建ImageSwitcher对象 
    private ImageSwitcher m_Switcher; 
    // 索引 
    private static int index = 0; 
 
    // "下一页"按钮ID 
    private static final int BUTTON_DWON_ID = 0x123456; 
    // “上一页”按钮ID 
    private static final int BUTTON_UP_ID = 0x123457; 
    // ImageSwitcher对象的ID 
    private static final int SWITCHER_ID = 0x123458; 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        // 创建一个线性布局LinearLayout 
        LinearLayout main_view = new LinearLayout(this); 
        // 创建ImageSwitcher对象 
        m_Switcher = new ImageSwitcher(this); 
        // 在线性布局中添加ImageSwitcher视图 
        main_view.addView(m_Switcher); 
        // 设置ImageSwitcher对象的ID 
        m_Switcher.setId(SWITCHER_ID); 
        // 设置ImageSwitcher对象的数据源 
        m_Switcher.setFactory((ViewFactory) this); 
        m_Switcher.setImageResource(imagelist[index]); 
 
        // 设置显示上面的线性布局 
        setContentView(main_view); 
        // 设置背景图片 
        main_view.setBackgroundResource(R.drawable.xh); 
 
        // 创建“下一张”按钮 
        Button next = new Button(this); 
        next.setId(BUTTON_DWON_ID); 
        next.setText("下一张"); 
        next.setOnClickListener((OnClickListener) this); 
        LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(100, 
                100); 
        main_view.addView(next, param); 
 
        // 创建“上一张”按钮 
        Button pre = new Button(this); 
        pre.setId(BUTTON_UP_ID); 
        pre.setText("上一张"); 
        pre.setOnClickListener((OnClickListener) this); 
        main_view.addView(pre, param); 
    } 
 
    // 事件监听、处理 
    public void onClick(View v) { 
        switch (v.getId()) { 
        // 下一页 
        case BUTTON_DWON_ID: 
            index++; 
            if (index >= imagelist.length) { 
                index = 0; 
            } 
            // ImageSwitcher对象资源索引 
            m_Switcher.setImageResource(imagelist[index]); 
            break; 
        // 上一页 
        case BUTTON_UP_ID: 
            index--; 
            if (index < 0) { 
                // 到最后一张 
                index = imagelist.length - 1; 
            } 
            // ImageSwitcher对象资源索引 
            m_Switcher.setImageResource(imagelist[index]); 
        default: 
            break; 
        } 
    } 
 
    public View makeView() { 
        // 将所有图片通过ImageView来显示 
        return new ImageView(this); 
    } 

热点排行