ImageButton设置头像(在Dialog中使用Gallery)
来源:互联网 发布:网络语泥垢是什么意思 编辑:程序博客网 时间:2024/05/21 10:44
通过单击ImageButton弹出Dialog,在Dialog中使用,显示Gallery,通过选择Gallery中的图片设置ImageButton中的图像。
主页面截图:
主布局文件main_activity.xml布局文件
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageButton android:id="@+id/imageButton1" android:onClick="popDialog" android:layout_width="70dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:layout_marginTop="19dp" android:src="@drawable/ic_launcher" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/imageButton1" android:layout_marginLeft="40dp" android:layout_toRightOf="@+id/imageButton1" android:ems="10" > <requestFocus /> </EditText></RelativeLayout>
main_gallery的主代码:
<!-- <?xml version="1.0" encoding="utf-8"?><Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/Gallery01" android:layout_width="70dp" android:layout_height="60dp"/> --><RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Gallery android:id="@+id/gallery" android:spacing="10dp" android:layout_width="fill_parent" android:layout_height="wrap_content" /></RelativeLayout>
点击ImageButton之后的的效果:
主代码MainActivity.java:
package com.example.l3_dialog;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.support.v4.view.ViewPager.LayoutParams;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import android.view.View.OnCreateContextMenuListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageButton;import android.widget.ImageView;public class MainActivity extends Activity {private ImageButton imagebutton;private Gallery gallery;private Integer[] photo = { R.drawable.sample_thumb_0, R.drawable.sample_thumb_1, R.drawable.sample_thumb_2, R.drawable.sample_thumb_3, R.drawable.sample_thumb_4, R.drawable.sample_thumb_5 };int pos = photo.length / 2;int IMAGES = 1;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imagebutton = (ImageButton) this.findViewById(R.id.imageButton1);imagebutton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {showDialog(IMAGES); }});}@Overrideprotected Dialog onCreateDialog(int id) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);LayoutInflater inflater = LayoutInflater.from(MainActivity.this);final View view = inflater.inflate(R.layout.activity_gallery, null);builder.setTitle("请选择你的头像:");builder.setView(view);gallery = (Gallery) view.findViewById(R.id.gallery);gallery.setSelection(photo.length / 2);gallery.setAdapter(new ImageAdapter());gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {pos = arg2;}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {removeDialog(IMAGES); ;}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {removeDialog(IMAGES);imagebutton.setImageResource(photo[pos]);}});return builder.create();}private class ImageAdapter extends BaseAdapter {@Overridepublic int getCount() {return photo.length;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView img = new ImageView(MainActivity.this);// 设置图片资源img.setImageResource(photo[position]);// 保持宽高比,不设置则gallery显示一张图片img.setAdjustViewBounds(true);// 设置固定大小img.setMaxHeight(100);img.setMaxWidth(140);img.setScaleType(ImageView.ScaleType.FIT_CENTER);// 设置图片大小img.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));return img;}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}
执行后的效果:
- ImageButton设置头像(在Dialog中使用Gallery)
- 头像选择效果(ImageButton,Gallery,ImageSwitcher)
- android中,如果使用imageButton可以在drawable 中设置一个selector,但是imageView设置不起作用
- 在TextView控件中使用ImageButton
- Dialog中Gallery的使用方法
- 用户界面(三)ImageView、ImageButton、Gallery
- Android自定义dialog——设置头像(拍照,相册)
- ImageButton组件的应用(更改头像)
- 在页面中使用属性头像(Profile Picture)宏
- 在Dialog中使用Toolbar
- 在gallery中浏览图片并设置显示图片倒影
- 在Dialog中使用Menu和Toolbar(作者:xujian)
- 在Dialog中使用Menu和Toolbar(作者:xujian)
- android中ImageButton的使用
- ImageButton中使用透明背景图片
- asp.net中datalist下面使用URL,拼接带有参数的跳转链接(用在ImageButton中)
- 在Dialog中使用Menu和Toolbar
- 在Dialog中使用Menu和Toolbar
- extern的用法
- nginx+keepalived 高可用负载均衡
- 变量声明和定义的区别
- for循环中i++与++i的效率探究
- static的用法
- ImageButton设置头像(在Dialog中使用Gallery)
- ASP.NET MVC3实战系列(一):简单示例
- 预处理指令
- Python中利用guiqwt进行曲线数据拟合
- 头文件的作用
- Android ActionBar使用方法
- 对多个相互分离的目标进行标记
- C语言中volatile的用法
- 临时存贮