如何android代码控制图片转换
2个回答
展开全部
可以放置图片的View控件是ImageView 那么这个类得对象有个 setImageResource(R.drawable....)(比如你的图片放在drawable文件夹里面,这个文件夹可以自己在res下面新建)方法,可以放置图片,如果是切换的话你就弄个按钮触发事件之类的,点击之后先清空 对象.clear()
然后再重新放置一个你指定的图片就好啦 如果再复杂一点的就用ImageSwitcher 这个我给你一个程序你看看吧,一半会儿是讲不明白的,但是道理是一样,就是在ImageSwitcher上面添加ImageView,图片实际上还是放在ImageView里面的/* 所有要显示的图片资源索引 */
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;
/** Called when the activity is first created. */
@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(this);
m_Switcher.setImageResource(imagelist[index]);
//设置显示上面创建的线性布局
setContentView(main_view);
//创建“下一张”按钮
Button next = new Button(this);
next.setId(BUTTON_DWON_ID);
next.setText("下一张");
next.setOnClickListener(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(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]);
break;
default:
break;
}
}
public View makeView()
{
//将所有图片通过ImageView来显示
return new ImageView(this);
}
然后再重新放置一个你指定的图片就好啦 如果再复杂一点的就用ImageSwitcher 这个我给你一个程序你看看吧,一半会儿是讲不明白的,但是道理是一样,就是在ImageSwitcher上面添加ImageView,图片实际上还是放在ImageView里面的/* 所有要显示的图片资源索引 */
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;
/** Called when the activity is first created. */
@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(this);
m_Switcher.setImageResource(imagelist[index]);
//设置显示上面创建的线性布局
setContentView(main_view);
//创建“下一张”按钮
Button next = new Button(this);
next.setId(BUTTON_DWON_ID);
next.setText("下一张");
next.setOnClickListener(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(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]);
break;
default:
break;
}
}
public View makeView()
{
//将所有图片通过ImageView来显示
return new ImageView(this);
}
展开全部
Java代码
在资源中添加5张图片,重命名为a-e。
实现java代码如下:
packagecn.csdn.android.test;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
publicclassAndroid_test2ActivityextendsActivity{
int[]image=newint[]{
R.drawable.a,
R.drawable.b,
R.drawable.c,
R.drawable.d,
R.drawable.e
};
intcurrentImg=0;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-generatedmethodstub
super.onCreate(savedInstanceState);
setContentView(R.id.root);
LinearLayoutmain=(LinearLayout)findViewById(R.id.root);
finalImageViewimages=newImageView(this);
main.addView(images);
images.setImageResource(image[0]);
images.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
if(currentImg>=4){
currentImg=-1;
}
images.setImageResource(image[++currentImg]);
}
});
}
}
在资源中添加5张图片,重命名为a-e。
实现java代码如下:
packagecn.csdn.android.test;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
publicclassAndroid_test2ActivityextendsActivity{
int[]image=newint[]{
R.drawable.a,
R.drawable.b,
R.drawable.c,
R.drawable.d,
R.drawable.e
};
intcurrentImg=0;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-generatedmethodstub
super.onCreate(savedInstanceState);
setContentView(R.id.root);
LinearLayoutmain=(LinearLayout)findViewById(R.id.root);
finalImageViewimages=newImageView(this);
main.addView(images);
images.setImageResource(image[0]);
images.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
if(currentImg>=4){
currentImg=-1;
}
images.setImageResource(image[++currentImg]);
}
});
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |