软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 移动开发 -> Android模仿发说说 -> 正文阅读

[移动开发]Android模仿发说说


本片博客的事例是根据我自己项目中的部分需求来的,所以有些和这个不相关的内容和源码,大家可以忽略不计。这种发说说的功能,我也是折腾了很久,今日才得知道,大神请不要见笑,,l里面的图片自己找好了,好了,先看效果:
[img]http://img.blog.csdn.net/20160403162317185?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center[img]http://img.blog.csdn.net/20160403162337701?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center[img]http://img.blog.csdn.net/20160403162404420?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
property_repair,xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/container"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@color/main_background"
  tools:ignore="MergeRootFrame" >
  

  <RelativeLayout  
    android:id="@+id/Layout_top"  
    android:orientation="horizontal"   
    android:layout_width="fill_parent"  
    android:layout_height="40dp"  
 
    android:layout_alignParentTop="true"  
    android:gravity="center">  
<include android:id="@+id/shopcar_head" layout="@layout/elife_head" />
  </RelativeLayout>  

  <RelativeLayout  
    android:id="@+id/Layout_bottom"   
    android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"   
    
    android:layout_height="40dp"
    android:gravity="center" >  
    <Button  
      android:id="@+id/button1"  
      android:layout_width="100dp"  
      android:layout_height="fill_parent"
      android:textSize="15sp"
      android:text="提交问题" 
      android:textColor="#ffffff"
      android:background="@drawable/round"/>  
    <Button  
      android:id="@+id/button2"  
      android:layout_width="100dp"  
      android:layout_height="fill_parent"
      android:layout_toRightOf="@+id/button1"
      android:textSize="15sp"
      android:layout_marginLeft="2dp"
       android:textColor="#ffffff"
   android:background="@drawable/round"
      android:text="取消报修" />
  </RelativeLayout>  
 
  <RelativeLayout  
    android:id="@+id/Content_Layout"	 
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"  
    android:layout_above="@id/Layout_bottom"   
    android:layout_below="@id/Layout_top"	
    android:gravity="center">	 
    <LinearLayout   
      android:layout_width="match_parent"  
      android:layout_height="match_parent"  
      android:orientation="vertical"
      android:layout_alignParentBottom="true" > 

      <EditText 
        android:id="@+id/editText1"
        android:layout_height="120dp"
        android:layout_width="fill_parent"
        android:textColor="#1eb2ff"
        android:layout_margin="12dp"
        android:gravity="top"
        android:textSize="15sp"
        android:hint="请说明你的问题..."
        android:maxLength="500"
        android:singleLine="false"
        android:background="@drawable/editview_shape" />
 
      <GridView
        android:id="@+id/gridView1"
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:layout_margin="10dp"
        android:background="#EFDFDF"
        android:horizontalSpacing="5dp"
        android:verticalSpacing="5dp"
        android:numColumns="4"
        android:scrollbars="none"
        android:columnWidth="90dp"
        android:stretchMode="columnWidth"
        android:gravity="center" >
      </GridView>
      <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="(长按图片可以删除已添加图片)"
        android:textColor="#1eb2ff"
        android:gravity="center" />
    </LinearLayout>
  </RelativeLayout>
  
</RelativeLayout>

griditem_addpic.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center"
  android:descendantFocusability="blocksDescendants"
  android:orientation="vertical" >
  <RelativeLayout
    android:layout_gravity="center"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:orientation="vertical" >
    <ImageView
    		android:layout_marginTop="10dp"
    		android:layout_marginRight="10dp"
      android:id="@+id/imag_oo"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:scaleType="fitXY"
      android:src="@drawable/ic_launcher" />
  </RelativeLayout>
</LinearLayout>

editview_shape.xml  //这个是设置圆角的,因为我有这个需求,大家不要可以选择略过
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" 
    android:padding="10dp">
  <!-- 填充editView的颜色 -->
  	<soild android:color="#ffffff"/>
  	<!-- 设置圆角的弧度,radius半径越大,editView的边角越圆 -->
   	<corners 
   	    android:radius="15dp"
   	    android:bottomRightRadius="15dp"
   	    android:bottomLeftRadius="15dp"
   	    android:topLeftRadius="15dp"  
        android:topRightRadius="15dp"/>
   	<stroke
   	    android:color="#1eb2ff"  
        android:width="4px" /> 
</shape>

tijiao_pingjia.xml  这个是弹窗的布局,也和上面一样 是我的需求 大家可以不要
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@null"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/tuuikuan_linea"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@drawable/round_1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/shifou"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="是否取消报修"
            android:textColor="#1eb2ff"
            android:textSize="12sp" />

        <LinearLayout
            android:id="@+id/xuanze"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/yes"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@null"
                android:focusable="true"
                android:gravity="center"
                android:text="是"
                android:textColor="#1eb2ff"
                android:textSize="12sp" />

            <Button
                android:id="@+id/no"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@null"
                android:focusable="true"
                android:gravity="center"
                android:text="取消"
                android:textColor="#1eb2ff"
                android:textSize="12sp" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

下面是程序 我因为项目需求,所有我的不是MainActivity,而是我需求的一个类,大家根据情况自己定义
Property_repair.java
package com.elife.property;

import java.util.ArrayList;
import java.util.HashMap;

import com.elife.app.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.SimpleAdapter.ViewBinder;
import android.widget.Toast;

public class Property_repair extends Activity {

  private GridView gridView1;              //网格显示缩略图
  private Button buttonPublish,button2,no,yes,button1;            //发布按钮
  private final int IMAGE_OPEN = 1;        //打开图片标记
  private String pathImage;                //选择图片路径
  private Bitmap bmp;                      //导入临时图片
  private ArrayList<HashMap<String, Object>> imageItem;
  private SimpleAdapter simpleAdapter;     //适配器
  private View view;
  
	private RadioButton radio;
	private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.property_repair);
        /*
         * 防止键盘挡住输入框
         * 不希望遮挡设置activity属性 android:windowSoftInputMode="adjustPan"
         * 希望动态调整高度 android:windowSoftInputMode="adjustResize"
         */
        getWindow().setSoftInputMode(WindowManager.LayoutParams.
        		SOFT_INPUT_ADJUST_PAN);
        //锁定屏幕
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.property_repair);
        radio = (RadioButton) findViewById(R.id.head_back);
		tv = (TextView) findViewById(R.id.radio_text);
		tv.setText("物业报修");
		radio.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				finish();
			}
		});
        button2=(Button) findViewById(R.id.button2);
        button2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				view=LayoutInflater.from(Property_repair.this).inflate(R.layout.tijiao_pingjia, null);
				final Dialog dialog=new Dialog(Property_repair.this,R.style.dialog2);
				dialog.setContentView(view);
				dialog.show();		
				no=(Button) view.findViewById(R.id.no);
				yes=(Button) view.findViewById(R.id.yes);
				yes.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
					
						finish();
					}
				});
				no.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {

						dialog.cancel();
					}
				});
			}
		});
        
         final EditText editText1=(EditText) findViewById(R.id.editText1);
        button1=(Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				if(editText1.getText().toString().length()==0){
					
					Toast.makeText(Property_repair.this, "请简述详情", Toast.LENGTH_SHORT).show();
					
					
				}else{
					Toast.makeText(Property_repair.this, "提交成功", Toast.LENGTH_SHORT).show();
						finish();
				}
			}
		});
        	
        //获取控件对象
        gridView1 = (GridView) findViewById(R.id.gridView1);

        /*
         * 载入默认图片添加图片加号
         * 通过适配器实现
         * SimpleAdapter参数imageItem为数据源 R.layout.griditem_addpic为布局
         */
        //获取资源图片加号
        bmp = BitmapFactory.decodeResource(getResources(), R.drawable.icon_addpic_unfocused);
        imageItem = new ArrayList<HashMap<String, Object>>();
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("imag_oo", bmp);
        imageItem.add(map);
        simpleAdapter = new SimpleAdapter(this, 
        		imageItem, R.layout.griditem_addpic, 
                new String[] { "imag_oo"}, new int[] { R.id.imag_oo}); 
        /*
         * HashMap载入bmp图片在GridView中不显示,但是如果载入资源ID能显示 如
         * map.put("itemImage", R.drawable.img);
         * 解决方法:
         *              1.自定义继承BaseAdapter实现
         *              2.ViewBinder()接口实现
         *  参考 http://blog.csdn.net/admin_/article/details/7257901
         */
        simpleAdapter.setViewBinder(new ViewBinder() {  
        @Override  
        public boolean setViewValue(View view, Object data,  
                String textRepresentation) {  
            // TODO Auto-generated method stub  
            if(view instanceof ImageView && data instanceof Bitmap){  
                ImageView i = (ImageView)view;  
                i.setImageBitmap((Bitmap) data);  
                return true;  
            }  
            return false;  
        }
        });  
        gridView1.setAdapter(simpleAdapter);
        
        /*
         * 监听GridView点击事件
         * 报错:该函数必须抽象方法 故需要手动导入import android.view.View;
         */
        gridView1.setOnItemClickListener(new OnItemClickListener() {
  			@Override
      public void onItemClick(AdapterView<?> parent, View v, int position, long id)
      {
  				if( imageItem.size() == 10) { //第一张为默认图片
  					Toast.makeText(Property_repair.this, "图片数9张已满", Toast.LENGTH_SHORT).show();
  				}
  				else if(position == 0) { //点击图片位置为+ 0对应0张图片
  				
  					//选择图片
  					Intent intent = new Intent(Intent.ACTION_PICK,       
  	                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
  	                startActivityForResult(intent, IMAGE_OPEN);  
  	            
  				}
  				else {
  					dialog(position);
  				}
      }
  		});  
    }
    
    //获取图片路径 响应startActivityForResult  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        super.onActivityResult(requestCode, resultCode, data);        
        //打开图片  
        if(resultCode==RESULT_OK && requestCode==IMAGE_OPEN) {        
            Uri uri = data.getData();  
            if (!TextUtils.isEmpty(uri.getAuthority())) {  
                //查询选择图片  
                Cursor cursor = getContentResolver().query(  
                        uri,  
                        new String[] { MediaStore.Images.Media.DATA },  
                        null,   
                        null,   
                        null);  
                //返回 没找到选择图片  
                if (null == cursor) {  
                    return;  
                }  
                //光标移动至开头 获取图片路径  
                cursor.moveToFirst();  
                pathImage = cursor.getString(cursor  
                        .getColumnIndex(MediaStore.Images.Media.DATA));  
            }
        }  //end if 打开图片
    }
    
    //刷新图片
    @Override
  protected void onResume() {
    super.onResume();
    if(!TextUtils.isEmpty(pathImage)){
      Bitmap addbmp=BitmapFactory.decodeFile(pathImage);
      HashMap<String, Object> map = new HashMap<String, Object>();
          map.put("imag_oo", addbmp);
          imageItem.add(map);
          simpleAdapter = new SimpleAdapter(this, 
          		imageItem, R.layout.griditem_addpic, 
                  new String[] { "imag_oo"}, new int[] { R.id.imag_oo}); 
          simpleAdapter.setViewBinder(new ViewBinder() {  
          @Override  
          public boolean setViewValue(View view, Object data,  
                  String textRepresentation) {  
              // TODO Auto-generated method stub  
              if(view instanceof ImageView && data instanceof Bitmap){  
                  ImageView i = (ImageView)view;  
                  i.setImageBitmap((Bitmap) data);  
                  return true;  
              }  
              return false;  
          }
          }); 
          gridView1.setAdapter(simpleAdapter);
          simpleAdapter.notifyDataSetChanged();
      //刷新后释放防止手机休眠后自动添加
          pathImage = null;
    }
  }
    
    /*
     * Dialog对话框提示用户删除操作
     * position为删除图片位置
     */
    protected void dialog(final int position) {
    	AlertDialog.Builder builder = new Builder(Property_repair.this);
    	builder.setMessage("确认移除已添加图片吗?");
    	builder.setTitle("提示");
    	builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
    		@Override
    		public void onClick(DialogInterface dialog, int which) {
    			dialog.dismiss();
    			imageItem.remove(position);
    	        simpleAdapter.notifyDataSetChanged();
    		}
    	});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    		@Override
    		public void onClick(DialogInterface dialog, int which) {
    			dialog.dismiss();
    			}
    		});
    	builder.create().show();
    }
    	
    }

......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-03 20:41:06  
移动开发 最新文章
深入了解android中的消息机制Handler
Android
Libgdx之BitmapFont字体
AndroidApp发布到应用市场的流程
Android开发找工作之前先看看这些知识点吧
View的事件分发机制解析
简单介绍了解白鹭引擎Egret
Cocos2d
android获取本地图片(二)
动画特效七:碰撞动画
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-16 21:08:27
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --