java代码实现相对布局

用java代码实现相对布局

1:扫描指定文件夹下的所有图片,用一个ImageSwitcher显示出来。

2:在ImageSwitcher的底部,添加相应的按钮,可以在各图片之间切换。

package gto.ImageSwitchTest;

import java.io.File;
import java.io.FileReader;

import android.R.drawable;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.text.AlteredCharSequence;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.ViewSwitcher.ViewFactory;

public class ImageSwitchTest extends Activity implements OnClickListener,ViewFactory{
/** Called when the activity is first created. */

private File[] m_imgList;
private ImageSwitcher m_ImageSwitch;
private static int m_picIndex;
private static int IMAGESWITCHER_ID = 0x123456;
private static int ButtonStartID = 0x2000000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//创建一个相对布局
RelativeLayout main_View = new RelativeLayout(this);
//创建一个ImageSwitcher
m_ImageSwitch = new ImageSwitcher(this);

//在相对布局中添加图片切换器
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
main_View.addView(m_ImageSwitch,param);
m_ImageSwitch.setId(IMAGESWITCHER_ID);
m_ImageSwitch.setFactory(
this);

File file
= Environment.getExternalStorageDirectory();
String strPic
= file + "\\mag\\mag01\\";
File magdir
= new File(strPic);
m_imgList
= magdir.listFiles();

Drawable myDrawable
= Drawable.createFromPath(m_imgList[m_picIndex].toString());
m_ImageSwitch.setImageDrawable(myDrawable);

setContentView(main_View);

//创建按钮
int count = m_imgList.length;
for(int i = count - 1; i >= 0; --i)
{
Button btn
= new Button(this);
btn.setId(ButtonStartID
+ i);
btn.setText(Integer.toString(i));
btn.setOnClickListener(
this);

param
= new RelativeLayout.LayoutParams(20,20);
if( count - 1 == i ){
param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
}
else{
param.addRule(RelativeLayout.LEFT_OF,ButtonStartID
+ i + 1);
}
param.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
btn.setLayoutParams(param);
main_View.addView(btn,param);
}
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
m_picIndex = v.getId() - ButtonStartID;
Drawable myDrawable
= Drawable.createFromPath(m_imgList[m_picIndex].toString());
m_ImageSwitch.setImageDrawable(myDrawable);
}

@Override
public View makeView() {
// TODO Auto-generated method stub
return new ImageView(this);
}
}

posted @ 2011-05-31 17:22  狼哥2  阅读(3717)  评论(0编辑  收藏  举报