2024年Android最全Android 控件之Gallery和ImageSwitcher图片切换器,2024年最新大厂Android核心面试题出炉

结尾

我还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

image

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一、重要方法

setImageURI(Uri uri):设置图片地址

setImageResource(int resid):设置图片资源库

setImageDrawable(Drawable drawable):绘制图片

二、实例

设置动画效果

imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_in));

imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_out));

三、完整代码

1、布局文件imageswitch.xml(显示弹出的对话框内容的布局。一个Gallery和一个ImageSwitcher,一上一下)

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout android:id=“@+id/widget34”

android:layout_width=“fill_parent” android:layout_height=“fill_parent”

xmlns:android=“http://schemas.android.com/apk/res/android”>

<Gallery android:id=“@+id/img_gallery” android:layout_width=“fill_parent”

android:layout_height=“110px” android:layout_marginTop=“10px”

android:layout_alignParentLeft=“true”/>

<ImageSwitcher android:id=“@+id/imageswitch”

android:layout_width=“90px” android:layout_height=“90px”

android:layout_alignParentTop=“true” android:layout_centerHorizontal=“true”

android:layout_alignBottom=“@+id/gallery”/>

2、完整类AddUserActivity.java,当点击对应的按钮的时候,就弹出圣诞框。

public class AddUserActivity extends Activity {

/** Called when the activity is first created. */

ImageButton imButton;

ImageSwitcher imageSwitcher;

Gallery gallery;

int imagePosition;

/**

  • 所有的图像图片

*/

private int[] images

= new int[]{R.drawable.icon

,R.drawable.image1,R.drawable.image2,R.drawable.image3

,R.drawable.image4,R.drawable.image5,R.drawable.image6

,R.drawable.image7,R.drawable.image8,R.drawable.image9

,R.drawable.image10,R.drawable.image11,R.drawable.image12

,R.drawable.image13,R.drawable.image14,R.drawable.image15

,R.drawable.image16,R.drawable.image17,R.drawable.image18

,R.drawable.image19,R.drawable.image20,R.drawable.image21

,R.drawable.image22,R.drawable.image23,R.drawable.image24

,R.drawable.image25,R.drawable.image26,R.drawable.image27

,R.drawable.image28,R.drawable.image29,R.drawable.image30};

AlertDialog imageChooseDialog;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.add_new);

imButton = (ImageButton) findViewById(R.id.image_button);

imButton.setOnClickListener(new ImageButtonListener());

}

class ImageButtonListener implements OnClickListener{

final CharSequence[] items = { “Red”, “Green”, “Blue” };

@Override

public void onClick(View v) {

initImageChooseDialog();

imageChooseDialog.show();

}

}

//初始化对话框;

private void initImageChooseDialog() {

AlertDialog.Builder builder = new Builder(this);

builder.setTitle(“请选择图片”)

.setPositiveButton(“确定”, new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which) {

imButton.setImageResource(images[imagePosition]);

}

})

.setNegativeButton(“取消”, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

}

});

LayoutInflater inflater = LayoutInflater.from(this);

View view = inflater.inflate(R.layout.imageswitch, null);

gallery = (Gallery)view.findViewById(R.id.img_gallery);

gallery.setAdapter(new ImageAdapter(this));//设置gallery数据。

gallery.setSelection(images.length/2);

imageSwitcher = (ImageSwitcher)view.findViewById(R.id.imageswitch);

imageSwitcher.setFactory(new ImageViewFactory(this));

gallery.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generated method stub

imagePosition=position;

imageSwitcher.setImageResource(images[position]);

}

@Override

public void onNothingSelected(AdapterView<?> parent) {

// TODO Auto-generated method stub

}

});

builder.setView(view);

imageChooseDialog=builder.create();

}

/**

  • 这个Adapter类表示Data、Adapter、View,Adapter表示 Data和View之间的纽带

  • 每显示一列数据都会运行这个类.

*/

class ImageAdapter extends BaseAdapter{

private Context context;

public ImageAdapter(Context context) {

this.context = context;

}

尾声

如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

架构篇

《Jetpack全家桶打造全新Google标准架构模式》

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

《Jetpack全家桶打造全新Google标准架构模式》**
[外链图片转存中…(img-HIAFvnXy-1714824484197)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值