• android 遮罩层效果


    看到一本电子杂志上有遮罩层的效果,感觉很漂亮,以为很麻烦,搜索了很多关于android遮罩层的,也没有得出一点思路,原来就是一个透明的效果,然后上面弹出的控件是透明或者半透明之类的,可以选择颜色,还是#ARBG,其中A就是传说中的透明色的值(可以根据需要设置透明的效果),废话不多说了,发一个简单的Demo吧,是我山寨的那本杂志的效果:(由于杂志内容主要是图片,弹出层才是给出的文字信息,所以我猜测是用Gallery显示的杂志内容)

    xml布局文件:

    <?xml version="1.0" encoding="utf-8"?>  
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:id="@+id/layout"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        >  
        <Gallery  
            android:id="@+id/showGallery"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent"  
            android:spacing="0dip"  
            />  
        <RelativeLayout  
                android:orientation="horizontal"  
                android:layout_width="fill_parent"  
                android:layout_height="wrap_content"  
                android:layout_gravity="bottom"  
                android:background="#86222222"  
                >  
                <TextView  
                    android:id="@+id/titleTextView"  
                    android:layout_width="wrap_content"  
                    android:layout_height="wrap_content"  
                    android:layout_toRightOf="@id/secondKillButton" 
                    android:text="00000000"
                    android:textColor="#ff0000"  
                    />  
                <Button  
                    android:id="@+id/unfoldButton"  
                    android:layout_width="wrap_content"  
                    android:layout_height="wrap_content"  
                    android:layout_alignParentRight="true"  
                    android:text="展开"  
                    />  
        </RelativeLayout>  
    </FrameLayout>   

    主要的代码也很简单,还有一个简单的Adapter,有不理解的朋友可以看我之前的blog

    1. package oneRain.UpMagazine;  
    2. import java.io.File;  
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5. import android.app.Activity;  
    6. import android.graphics.Bitmap;  
    7. import android.graphics.BitmapFactory;  
    8. import android.graphics.Color;  
    9. import android.os.Bundle;  
    10. import android.view.Gravity;  
    11. import android.view.View;  
    12. import android.view.View.OnClickListener;  
    13. import android.view.ViewGroup;  
    14. import android.view.Window;  
    15. import android.widget.AdapterView;  
    16. import android.widget.AdapterView.OnItemSelectedListener;  
    17. import android.widget.BaseAdapter;  
    18. import android.widget.Button;  
    19. import android.widget.FrameLayout;  
    20. import android.widget.Gallery;  
    21. import android.widget.ImageView;  
    22. import android.widget.TextView;  
    23. public class ShowActivity extends Activity  
    24. {  
    25.     private int i = 1;  
    26.     private int pos = 0;  
    27.     private List<String> contents = null;  
    28.     private static final String DIR = "/mnt/sdcard/UpMagazine/2010/content/";  
    29.       
    30.     //设置是否展开  
    31.     private boolean isFolded = true;  
    32.       
    33.     //设置控件  
    34.     private FrameLayout layout = null;  
    35.     private Gallery showGallery = null;  
    36.     private Button unfoldButton = null;  
    37.     private TextView textView = null;  
    38.     private TextView titleTextView = null;  
    39.       
    40.     public void onCreate(Bundle savedInstanceState)  
    41.     {  
    42.         super.onCreate(savedInstanceState);  
    43.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
    44.         setContentView(R.layout.show);  
    45.           
    46.         initView();  
    47.     }  
    48.       
    49.     @Override  
    50.     protected void onResume()   
    51.     {  
    52.         // TODO Auto-generated method stu  
    53.         super.onResume();  
    54.           
    55.         isFolded = true;  
    56.     }  
    57.     //初始化  
    58.     private void initView()  
    59.     {     
    60.           
    61.         contents = new ArrayList<String>();  
    62.           
    63.         File dir = new File(DIR);  
    64.         File[] files = dir.listFiles();  
    65.           
    66.         for(int i=0; i<files.length; i++)  
    67.         {  
    68.             contents.add(DIR + files[i].getName());  
    69.         }  
    70.           
    71.         layout = (FrameLayout)findViewById(R.id.layout);  
    72.           
    73.         unfoldButton = (Button)findViewById(R.id.unfoldButton);  
    74.         unfoldButton.setOnClickListener(new UnfoldClickListener());  
    75.           
    76.         showGallery = (Gallery)findViewById(R.id.showGallery);  
    77.         showGallery.setOnItemSelectedListener(new GalleryOnItemSelectedListener());  
    78.         showGallery.setAdapter(new ShowAdapter());  
    79.           
    80.         titleTextView = (TextView)findViewById(R.id.titleTextView);  
    81.     }  
    82.       
    83.     //滑动监听  
    84.     private class GalleryOnItemSelectedListener implements OnItemSelectedListener  
    85.     {  
    86.         public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,  
    87.                 long arg3)   
    88.         {  
    89.             // TODO Auto-generated method stub  
    90.             pos = arg2 + 1;  
    91.               
    92.             titleTextView.setText("第" + pos +"个主题");  
    93.         }  
    94.         public void onNothingSelected(AdapterView<?> arg0)  
    95.         {  
    96.             // TODO Auto-generated method stub  
    97.               
    98.         }  
    99.           
    100.     }  
    101.       
    102.     //按钮监听,展开一个透明的显示文本的遮挡层  
    103.     private class UnfoldClickListener implements OnClickListener  
    104.     {  
    105.         public void onClick(View v)   
    106.         {         
    107.             if(isFolded)  
    108.             {  
    109.                 textView = new TextView(ShowActivity.this);  
    110.                   
    111.                 textView.setTextColor(Color.BLUE);  
    112.                 textView.setTextSize(20);  
    113.                 textView.setText("滚滚长江东逝水,浪花淘尽英雄。/n" +  
    114.                         "是非成败转头空,/n" +  
    115.                         "青山依旧在,几度夕阳红。/n" +  
    116.                         "白发渔樵江渚上,惯看秋月春风。 /n" +  
    117.                         "一壶浊酒喜相逢,/n" +  
    118.                         "古今多少事,都付笑谈中。");  
    119.                 textView.setGravity(Gravity.CENTER);  
    120.                 textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,   
    121.                         ViewGroup.LayoutParams.FILL_PARENT));  
    122.                 textView.setBackgroundColor(Color.parseColor("#86222222"));  
    123.                   
    124.                 unfoldButton.setText("收回");  
    125.                   
    126.                 isFolded = false;  
    127.                   
    128.                 layout.addView(textView);  
    129.             }  
    130.             else  
    131.             {  
    132.                 unfoldButton.setText("展开");  
    133.                   
    134.                 isFolded = true;  
    135.                   
    136.                 layout.removeView(textView);  
    137.             }  
    138.         }  
    139.     }  
    140.       
    141.     private class ShowAdapter extends BaseAdapter  
    142.     {  
    143.           
    144.         public int getCount()   
    145.         {  
    146.             // TODO Auto-generated method stub  
    147.             return contents.size();  
    148.         }  
    149.         public Object getItem(int position)   
    150.         {  
    151.             // TODO Auto-generated method stub  
    152.             return position;  
    153.         }  
    154.         public long getItemId(int position)   
    155.         {  
    156.             // TODO Auto-generated method stub  
    157.             return 0;  
    158.         }  
    159.         public View getView(int position, View convertView, ViewGroup parent)   
    160.         {  
    161.             // TODO Auto-generated method stub  
    162.             ImageView i = new ImageView(ShowActivity.this);  
    163.               
    164.             Bitmap bm = BitmapFactory.decodeFile(contents.get(position));  
    165. //          i.setLayoutParams(new Gallery.LayoutParams(Gallery.LayoutParams.FILL_PARENT,  
    166. //                  Gallery.LayoutParams.FILL_PARENT));  
    167.             i.setScaleType(ImageView.ScaleType.FIT_XY);  
    168.             i.setImageBitmap(bm);  
    169.               
    170.             return i;  
    171.         }  
    172.     }  
    173. }  

    效果如下:

     

  • 相关阅读:
    SQL Server(00):JSON 函数
    Oracle(00):SQL Developer官方工具 初探
    SQL Server(00):搜索特定的对象
    三星平板SM-T320刷机
    SQL Server(00):聚合函数
    SQL Server(00):日期时间函数
    SQL Server(00):字符串函数
    SQL Server(00):文本和图像函数
    SQL Server(00):数学函数
    SQL Server(00):元数据函数
  • 原文地址:https://www.cnblogs.com/zhwl/p/2402923.html
Copyright © 2020-2023  润新知