运用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

相关文章

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

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

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

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

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