本文主要是介绍【代码】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
[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; } }
}
效果如下:
本文出自 “清源教育” 博客,转载请注明此处,谢谢!欢迎登录清源教育官网,查看更多视频教程。
这篇关于【代码】android 遮罩层效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!