您的位置:首页 > 其它

实现遮罩层效果

2013-05-22 11:50 190 查看
码片段说明.txt外部引用原始文档

1


实现的就是在最上层显示动态悬浮的说明,比如在程序中,在最上层显示一个说明的文字。实现的原理也很简单,就是在最上层需要显示的设置为透明或者半透明状态,然后就是布局的设计。


ShowActivity.java外部引用原始文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173


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;
}
}
}</i>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: