【代碼】android 遮罩層效果

來源:互聯網
上載者:User

看到一本電子雜誌上有遮罩層的效果,感覺很漂亮,以為很麻煩,搜尋了很多關於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


[java] 
view plaincopy package oneRain.UpMagazine;  import java.io.File;  import java.util.ArrayList;  import java.util.List;  import android.app.Activity;  import android.graphics.Bitmap;  import android.graphics.BitmapFactory;  import android.graphics.Color;  import android.os.Bundle;  import android.view.Gravity;  import android.view.View;  import android.view.View.OnClickListener;  import android.view.ViewGroup;  import android.view.Window;  import android.widget.AdapterView;  import android.widget.AdapterView.OnItemSelectedListener;  import android.widget.BaseAdapter;  import android.widget.Button;  import android.widget.FrameLayout;  import android.widget.Gallery;  import android.widget.ImageView;  import android.widget.TextView;  public class ShowActivity extends Activity  {      private int i = 1;      private int pos = 0;      private List<String> contents = null;      private static final String DIR = "/mnt/sdcard/UpMagazine/2010/content/";            //設定是否展開      private boolean isFolded = true;            //設定控制項      private FrameLayout layout = null;      private Gallery showGallery = null;      private Button unfoldButton = null;      private TextView textView = null;      private TextView titleTextView = null;            public void onCreate(Bundle savedInstanceState)      {          super.onCreate(savedInstanceState);          requestWindowFeature(Window.FEATURE_NO_TITLE);          setContentView(R.layout.show);                    initView();      }            @Override      protected void onResume()       {          // TODO Auto-generated method stu          super.onResume();                    isFolded = true;      }      //初始化      private void initView()      {                       contents = new ArrayList<String>();                    File dir = new File(DIR);          File[] files = dir.listFiles();                    for(int i=0; i<files.length; i++)          {              contents.add(DIR + files[i].getName());          }                    layout = (FrameLayout)findViewById(R.id.layout);                    unfoldButton = (Button)findViewById(R.id.unfoldButton);          unfoldButton.setOnClickListener(new UnfoldClickListener());                    showGallery = (Gallery)findViewById(R.id.showGallery);          showGallery.setOnItemSelectedListener(new GalleryOnItemSelectedListener());          showGallery.setAdapter(new ShowAdapter());                    titleTextView = (TextView)findViewById(R.id.titleTextView);      }            //滑動監聽      private class GalleryOnItemSelectedListener implements OnItemSelectedListener      {          public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,                  long arg3)           {              // TODO Auto-generated method stub              pos = arg2 + 1;                            titleTextView.setText("第" + pos +"個主題");          }          public void onNothingSelected(AdapterView<?> arg0)          {              // TODO Auto-generated method stub                        }                }            //按鈕監聽,展開一個透明的顯示文本的遮擋層      private class UnfoldClickListener implements OnClickListener      {          public void onClick(View v)           {                     if(isFolded)              {                  textView = new TextView(ShowActivity.this);                                    textView.setTextColor(Color.BLUE);                  textView.setTextSize(20);                  textView.setText("滾滾長江東逝水,浪花淘盡英雄。/n" +                          "是非成敗轉頭空,/n" +                          "青山依舊在,幾度夕陽紅。/n" +                          "白髮漁樵江渚上,慣看秋月春風。 /n" +                          "一壺濁酒喜相逢,/n" +                          "古今多少事,都付笑談中。");                  textView.setGravity(Gravity.CENTER);                  textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,                           ViewGroup.LayoutParams.FILL_PARENT));                  textView.setBackgroundColor(Color.parseColor("#86222222"));                                    unfoldButton.setText("收回");                                    isFolded = false;                                    layout.addView(textView);              }              else              {                  unfoldButton.setText("展開");                                    isFolded = true;                                    layout.removeView(textView);              }          }      }            private class ShowAdapter extends BaseAdapter      {                    public int getCount()           {              // TODO Auto-generated method stub              return contents.size();          }          public Object getItem(int position)           {              // TODO Auto-generated method stub              return position;          }          public long getItemId(int position)           {              // TODO Auto-generated method stub              return 0;          }          public View getView(int position, View convertView, ViewGroup parent)           {              // TODO Auto-generated method stub              ImageView i = new ImageView(ShowActivity.this);                            Bitmap bm = BitmapFactory.decodeFile(contents.get(position));  //          i.setLayoutParams(new Gallery.LayoutParams(Gallery.LayoutParams.FILL_PARENT,  //                  Gallery.LayoutParams.FILL_PARENT));              i.setScaleType(ImageView.ScaleType.FIT_XY);              i.setImageBitmap(bm);                            return i;          }      }  }  


效果如下:





本文出自 “清源教育” 部落格,轉載請註明此處,謝謝!歡迎登入清源教育官網,查看更多視頻教程。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.