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

转载于:https://www.cnblogs.com/deagle/articles/2064899.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值