实现遮罩层效果
2013-05-22 11:50
190 查看
码片段说明.txt外部引用原始文档
ShowActivity.java外部引用原始文档
1 | 实现的就是在最上层显示动态悬浮的说明,比如在程序中,在最上层显示一个说明的文字。实现的原理也很简单,就是在最上层需要显示的设置为透明或者半透明状态,然后就是布局的设计。 |
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> |
相关文章推荐
- 用js+iframe形成页面的一种遮罩效果的具体实现
- 小程序 用css实现遮罩效果
- 自定义View通过PorterDuffXfermode实现图片遮罩效果
- IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
- 实现tabs组件IFrame模式的遮罩效果
- jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
- 利用div实现遮罩层效果
- html+css源码之实现登录弹出框遮罩层效果
- 使用Jquery实现页面加载时的遮罩效果
- JavaScript 实现loading加载效果实现页面遮罩层
- canvas实现遮罩效果
- 微信小程序实现登录遮罩效果
- 兼容IE6、7、8和火狐的遮罩层效果实现
- 纯js实现遮罩层效果----Day18
- jQuery实现按钮点击遮罩加载及处理完后恢复的效果
- -webkit-mask实现爱心遮罩效果
- css实现遮罩效果以及帧布局使用
- 弹出遮罩层后禁止滚动效果【实现代码】
- React Native之Modal组件实现遮罩层效果
- jQuery实现鼠标滑过遮罩并高亮显示效果