Some words about me

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas a urna sit amet leo sagittis cursus a at lectus. Donec bibendum facilisis ultricies. Maecenas nec arcu dui, ut lobortis erat. In nec condimentum quam. Vivamus euismod scelerisque ligula vitae fermentum. Nulla dignissim rutrum eleifend.

Donec mi eros, congue ut consectetur eget, pretium vitae orci. Aliquam pharetra ultricies lobortis. Morbi eget nisi lectus. Maecenas felis augue, molestie in vestibulum et, lacinia et leo. Suspendisse potenti. Maecenas eget est augue. Donec tincidunt mollis fermentum.

Contact me?

 
 
 

Donec mi eros, congue ut consectetur eget, pretium vitae orci. Aliquam pharetra ultricies lobortis. Morbi eget nisi lectus. Maecenas felis augue, molestie in vestibulum et, lacinia et leo. Suspendisse potenti. Maecenas eget est augue. Donec tincidunt mollis fermentum.

Send the message
 

实现点击按钮,出现隐藏布局

       开始的时候好奇3d效果,然后就去看一下布局,所以,就哪一个布局文件里面的include嵌套布局开始研究了一番:

结果还不错,做了一个可以试着点击按钮,然后出来一个隐藏的布局,然后,我又改进了一下,直接出现一个隐藏的布局

里面有一个gridview,然后看一看,出了图片丑了一点,其余的就ok啦!

       这里只需要一个activity,就是一个java类。但是我建立了三个布局文件,其实两个就可以ok的,但是,为了大家能看懂,所以

我就详细写了一下:

       先看看布局文件吧:

这是一个开始界面的代码,看上去只有一个按钮:

颜色丑了一点,请大家见谅一下哦!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ff0" >

    <Button
        android:id="@+id/btn_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/mm_title_btn_menu_disable"
        android:onClick="onAction" />

    <RelativeLayout
        android:id="@+id/layout_visible"
        android:layout_width="300dip"
        android:layout_height="200dip"
        android:layout_marginRight="10dip"
        android:layout_marginTop="30dip" >

        <include layout="@layout/diy_menu" />
    </RelativeLayout>

</LinearLayout>

然后看一看include里面的那个布局文件吧:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu"
    android:layout_width="fill_parent"
    android:layout_height="200dip"
    android:background="#00000000"
    android:paddingBottom="2dip"
    android:layout_marginLeft="50dip"
    android:paddingTop="2dip"
    android:visibility="gone" >

    
    <GridView
        android:id="@+id/gridview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:numColumns="2"
        android:verticalSpacing="15dip" />

</LinearLayout>

 

这下,我们就把gridview弄到布局文件里面去了:

然后再看一看布置gridview里面的内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <!-- 在这个布局文件里面,我们主要是设置adapter里面的布局 -->

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2dip" />

    <TextView
        android:id="@+id/text_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="" />

</LinearLayout>

这下,我们就布局完全ok啦!

在看一看activity里面的内容吧:

package cn.android.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class VisiblityActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
    }

    // 定义一个变量,然后来统计次数
    private int count;

    public void onAction(View v) {
        count++;
        LinearLayout menu = (LinearLayout) findViewById(R.id.menu);
        if (count % 2 == 0) {
            System.out.println("原来在点击了两次哦!");
            menu.setVisibility(View.GONE);
        } else {
            System.out.println("呵呵,我只是单击了单次!");
            menu.setVisibility(View.VISIBLE);
        }
        // 得到gridview的实例
        myGridView = (GridView)menu.findViewById(R.id.gridview);

        // 这里创建一个绑定适配器的方法
        bindAdapter();
    }
    private GridView myGridView;
    private void bindAdapter() {
        MyCarAdapter adapter = new MyCarAdapter();
        myGridView.setAdapter(adapter);
    }

    // 自定义一个adapter,可以灵活的来控制gridview子控件的布局显示
    // 这是一个内部类
    class MyCarAdapter extends BaseAdapter {
        // 图片的索引id
        int[] img = { R.drawable.emoji_000, R.drawable.emoji_001,
                R.drawable.emoji_002, R.drawable.emoji_003 };

        // 再定义一个数组,然后与之对应
        String[] name = { "one", "two", "three", "four" };

        // 这里我们最好是重新写一下构造方法
        public MyCarAdapter() {

        }

        // 获取条目的数量
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return img.length;
        }

        // 返回子控件的内容
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return img[position];
        }

        // 获取子控件的id
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        // 重新加载view的方法
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ImageView imageView = null;
            if (convertView == null) {

                // 通过layoutinflater类加载布局,返回一个view的实例对象
                convertView = LayoutInflater.from(VisiblityActivity.this)
                        .inflate(R.layout.main_view, null);
            }
            // 通过convertview调用findviewbyid方法根据其id返回相应的子控技
            imageView = (ImageView) convertView.findViewById(R.id.image);
            imageView.setImageResource(img[position]);
            TextView textview = (TextView) convertView
                    .findViewById(R.id.text_name);
            textview.setText(name[position]);

            return convertView;
        }

    }

}

最后再看一看点击那个左上角的小按钮出现的布局界面吧:

好了,大家看得懂不。希望大家踊跃回馈!谢谢!

posted @ 2014-02-17 16:56  Catherine_Brain  阅读(995)  评论(0编辑  收藏  举报