运用ImageButton编写选择头像小程序

2024-02-02 16:58

本文主要是介绍运用ImageButton编写选择头像小程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现下列图的效果:

 

首先,进行布局activity_select_image.xml中的代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" android:background="#000000"android:orientation="horizontal"><ImageButtonandroid:id="@+id/image"android:layout_width="80dp"android:layout_height="80dp"android:contentDescription="@drawable/ic_launcher"android:src="@drawable/ic_launcher" /><EditText android:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="text"/></LinearLayout>

在添加一个xml文件(dialog. xml),代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Galleryandroid:id="@+id/gallery"android:layout_width="fill_parent"android:layout_height="80dp"android:layout_centerHorizontal="true"android:layout_centerVertical="true"></Gallery><ImageSwitcherandroid:id="@+id/imageswitch"android:layout_width="60dp"android:layout_height="60dp"android:layout_centerHorizontal="true"android:layout_centerVertical="true"></ImageSwitcher></RelativeLayout>


主要的Activity(SelectImageActivity.java)中代码如下:

package com.bzu.selectimage.activity;import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageButton;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;public class SelectImageActivity extends Activity {private ImageButton imageButton;private Gallery gallery;private ImageSwitcher imageSwitcher;// 定义图片数组private int[] pics;private int num;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_select_image);imageButton = (ImageButton) this.findViewById(R.id.image);pics = new int[] { R.drawable.star0, R.drawable.star1,R.drawable.star2, R.drawable.star3, R.drawable.star4,R.drawable.star5 };imageButton.setOnClickListener(new OnClickListener() {public void onClick(View v) {// Inflator在android中建立了资源文件到对象的桥梁LayoutInflater layoutInflater = LayoutInflater.from(SelectImageActivity.this);// 得到自定义的对话框View dialogView = layoutInflater.inflate(R.layout.dialog, null);AlertDialog.Builder dialog = new AlertDialog.Builder(SelectImageActivity.this);dialog.setTitle("请选择头像:");dialog.setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {imageButton.setImageResource(pics[num]);}});dialog.setNegativeButton("取消",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {}});gallery = (Gallery) dialogView.findViewById(R.id.gallery);imageSwitcher = (ImageSwitcher) dialogView.findViewById(R.id.imageswitch);gallery.setAdapter(new Adapter(SelectImageActivity.this));gallery.setSelection(pics.length/2);gallery.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapter, View view,int position, long id) {num = position;imageSwitcher.setImageResource(pics[num]);}});imageSwitcher.setFactory(new ViewFactory() {@Overridepublic View makeView() {ImageView imageView = new ImageView(SelectImageActivity.this);imageView.setLayoutParams(new ImageSwitcher.LayoutParams(80,80));// 设置显示图片的大小return imageView;}});dialog.setView(dialogView);dialog.create().show();}});}private class Adapter extends BaseAdapter {private Context context;public Adapter(Context context) {this.context = context;}public int getCount() {return pics.length;}public Object getItem(int position) {return pics[position];}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {ImageView imageView = new ImageView(SelectImageActivity.this);imageView.setImageResource(pics[position]);// 设置图片大小自适应imageView.setAdjustViewBounds(true);imageView.setLayoutParams(new Gallery.LayoutParams(60, 60));// 设置显示图片的大小imageView.setPadding(15, 10, 15, 10);// 设置四边的距离return imageView;}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_select_image, menu);return true;}}



 

这篇关于运用ImageButton编写选择头像小程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/671367

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

poj 2431 poj 3253 优先队列的运用

poj 2431: 题意: 一条路起点为0, 终点为l。 卡车初始时在0点,并且有p升油,假设油箱无限大。 给n个加油站,每个加油站距离终点 l 距离为 x[i],可以加的油量为fuel[i]。 问最少加几次油可以到达终点,若不能到达,输出-1。 解析: 《挑战程序设计竞赛》: “在卡车开往终点的途中,只有在加油站才可以加油。但是,如果认为“在到达加油站i时,就获得了一