首页 文章 精选 留言 我的

精选列表

搜索[分屏视图],共8767篇文章
优秀的个人博客,低调大师

画廊视图Gallery

幻灯片图片浏览器 1.布局 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" 6 tools:context=".AndroidGalleryActivity" > 7 8 <ImageSwitcher 9 android:id="@+id/imgswi" 10 android:layout_width="320dp" 11 android:layout_height="320dp" /> 12 13 <Gallery 14 android:id="@+id/gallery" 15 android:layout_width="match_parent" 16 android:layout_height="wrap_content" 17 android:layout_marginTop="25dp" 18 android:unselectedAlpha="0.6" 19 android:spacing="3pt" 20 /> 21 22 </LinearLayout> 2.逻辑控制 1 package com.example.androidgallery; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.content.res.TypedArray; 6 import android.support.v4.view.ViewPager.LayoutParams; 7 import android.view.Menu; 8 import android.view.View; 9 import android.view.ViewGroup; 10 import android.view.animation.AnimationUtils; 11 import android.widget.AdapterView; 12 import android.widget.AdapterView.OnItemSelectedListener; 13 import android.widget.BaseAdapter; 14 import android.widget.Gallery; 15 import android.widget.ImageSwitcher; 16 import android.widget.ImageView; 17 import android.widget.ViewSwitcher.ViewFactory; 18 19 public class AndroidGalleryActivity extends Activity { 20 21 int[] imageIds=new int[]{ 22 R.drawable.mm, 23 R.drawable .mm2, 24 R.drawable.mm3, 25 R.drawable.mm4 26 } ; 27 28 @Override 29 protected void onCreate(Bundle savedInstanceState) { 30 super.onCreate(savedInstanceState); 31 setContentView(R.layout.activity_android_gallery); 32 final Gallery gallery=(Gallery)this.findViewById(R.id.gallery); 33 final ImageSwitcher imgswi=(ImageSwitcher)this.findViewById(R.id.imgswi); 34 //设置ViewFactory对象 35 imgswi.setFactory(new ViewFactory() { 36 37 @Override 38 public View makeView() { 39 ImageView imageView=new ImageView(AndroidGalleryActivity.this); 40 imageView.setBackgroundColor(0xff0000); 41 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 42 imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 43 return imageView; 44 } 45 }); 46 //设置图片更换动画效果 47 imgswi.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in)); 48 imgswi.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out)); 49 //创建一个BaseAdapter对象,负责提供Gallery显示每张图片 50 BaseAdapter adapter=new BaseAdapter() { 51 52 @Override 53 public View getView(int position, View convertview, ViewGroup parent) { 54 //创建一个ImageView 55 ImageView imageView=new ImageView(AndroidGalleryActivity.this); 56 imageView.setImageResource(imageIds[position%imageIds.length]); 57 //设置ImageView缩放类型 58 imageView.setScaleType(ImageView.ScaleType.FIT_XY); 59 imageView.setLayoutParams(new Gallery.LayoutParams(75,100)); 60 /*TypedArray typeArray=obtainStyledAttributes(R.styleable.Gallery); 61 imageView.setBackgroundResource(TypedArray)*/ 62 return imageView; 63 } 64 65 @Override 66 public long getItemId(int arg0) { 67 // TODO Auto-generated method stub 68 return arg0; 69 } 70 71 @Override 72 public Object getItem(int arg0) { 73 // TODO Auto-generated method stub 74 return arg0; 75 } 76 77 @Override 78 public int getCount() { 79 // TODO Auto-generated method stub 80 return imageIds.length; 81 } 82 }; 83 84 gallery.setAdapter(adapter); 85 gallery.setOnItemSelectedListener(new OnItemSelectedListener() { 86 87 @Override 88 public void onItemSelected(AdapterView<?> parent, View view, 89 int position, long id) { 90 // TODO Auto-generated method stub 91 imgswi.setImageResource(imageIds[position%imageIds.length]); 92 } 93 94 @Override 95 public void onNothingSelected(AdapterView<?> parent) { 96 // TODO Auto-generated method stub 97 98 } 99 100 }); 101 } 102 103 @Override 104 public boolean onCreateOptionsMenu(Menu menu) { 105 // Inflate the menu; this adds items to the action bar if it is present. 106 getMenuInflater().inflate(R.menu.activity_android_gallery, menu); 107 return true; 108 } 109 110 } 本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/archive/2013/03/02/2939902.html如需转载请自行联系原作者 欢醉

优秀的个人博客,低调大师

Android网格视图(GridView)

GridView的一些属性: 1.android:numColumns=”auto_fit” //GridView的列数设置为自动,也可以设置成2、3、4…… 2.android:columnWidth=”90dp " //每列的宽度,也就是Item的宽度 3.android:stretchMode=”columnWidth"//缩放与列宽大小同步 4.android:verticalSpacing=”10dp” //两行之间的边距 5.android:horizontalSpacing=”10dp” //两列之间的边距 6.android:cacheColorHint="#00000000" //去除拖动时默认的黑色背景 7.android:listSelector="#00000000" //去除选中时的黄色底色 8.android:scrollbars="none" //隐藏GridView的滚动条 9.android:fadeScrollbars="true" //设置为true就可以实现滚动条的自动隐藏和显示 10.android:fastScrollEnabled="true" //GridView出现快速滚动的按钮(至少滚动4页才会显示) 11.android:fadingEdge="none" //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。(可以理解为上下边缘的提示色) 12.android:fadingEdgeLength="10dip" //定义的衰落(褪去)边缘的长度 13.android:stackFromBottom="true" //设置为true时,你做好的列表就会显示你列表的最下面 14.android:transcriptMode="alwaysScroll" //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内 15.android:drawSelectorOnTop="false" //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false) 下面来示例显示程序图标与标题: 子元素布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/itemImage" android:layout_width="80dp" android:layout_height="80dp" android:layout_centerHorizontal="true"/> <TextView android:id="@+id/itemName" android:layout_below="@id/itemImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true"/> </RelativeLayout> GridView布局,每列3个: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <GridView android:id="@+id/gridView" android:layout_width="match_parent" android:layout_height="wrap_content" android:horizontalSpacing="2dp" android:numColumns="3" android:verticalSpacing="2dp" /> </LinearLayout> 数据绑定,给定点击事件: package com.example.androidgridview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.R.string; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import android.widget.SimpleAdapter; import android.widget.Toast; public class MainActivity extends Activity { private GridView gridView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) this.findViewById(R.id.gridView); List<Map<String, Object>> item = getData(); // SimpleAdapter对象,匹配ArrayList中的元素 SimpleAdapter simpleAdapter = new SimpleAdapter(this, item, R.layout.gridviewitem, new String[] { "itemImage", "itemName" }, new int[] { R.id.itemImage, R.id.itemName }); gridView.setAdapter(simpleAdapter); // 添加点击事件 gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int index = arg2 + 1;// id是从0开始的,所以需要+1 Toast.makeText(getApplicationContext(), "你按下了选项:" + index, 0).show(); } }); } /** * 将图标图片和图标名称存入ArrayList中 * * @return */ private List<Map<String, Object>> getData() { List<Map<String, Object>> items = new ArrayList<Map<String, Object>>(); int[] listImg = new int[] { R.drawable.browser, R.drawable.email, R.drawable.camera, R.drawable.clock, R.drawable.contacts, R.drawable.gallery, R.drawable.gmail, R.drawable.gtalk, R.drawable.maps, R.drawable.market, R.drawable.messages, R.drawable.phone, R.drawable.voice, R.drawable.music, R.drawable.calender }; String[] listName = new String[] { "九宫blue", "九宫email", "九宫firfox", "九宫gongju", "九宫heguo", "九宫kaiguan", "九宫letv", "九宫libray", "九宫list", "九宫luxiang", "九宫main", "九宫ooo", "九宫twite", "九宫voda", "九宫wifi" }; for (int i = 0; i < listImg.length; i++) { Map<String, Object> item = new HashMap<String, Object>(); item.put("itemImage", listImg[i]); item.put("itemName", listName[i]); items.add(item); } return items; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 运行效果: 图片资源下载 运行的时候报错: 81000-byte external allocation too large for this process. VM won't let us allocate 81000bytes Google后得到信息是Android的Dalvik VM为一个应用提供了大约16MB的内存,一般我们处理超过8MB的图片将会出现OutOfMemoryError异常(内存溢出异常) 其中一个方法:http://stackoverflow.com/questions/8250704/external-allocation-too-large-for-this-process 在网上找了一下,参考网友的方法,通常的原因就是我们加载的图片太大,我看了一下我的图片,用500W像素的Defy拍的,原始大小一般都在800KB左右,这样大的图片才导致了内存泄露,网上大神们给的通常的解决方法是,用BitmapFactory解码时加上设置好的options指令(我就是没用options),通常Options如下设定: BitmapFactory.Options options=new Options(); options.inDither=false; /*不进行图片抖动处理*/ options.inPreferredConfig=null; /*设置让解码器以最佳方式解码*/ options.inSampleSize=4; /*图片长宽方向缩小倍数*/ Bitmapimg=BitmapFactory.decodeByteArray(buffer, 0, buffer.length, options); 这样修改后,我发现传到手机上的图片一般都是200KB左右了,即缩小为原来的1/4,而且看起来还行,没怎么失真,几乎不影响观看效果,问题也解决了~ 对了,最好在你使用完Bitmap之后,调用一下recycle()方法,这样更有利于内存回收。 我此处用到的图片都是80KB以上的,存在drawable文件夹中,直接用R.drawable.来调用,没用到Bitmap ,因此只能缩小图片大小。 本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/p/3619086.html如需转载请自行联系原作者 欢醉

优秀的个人博客,低调大师

Windows Terminal v0.7 发布:支持分屏、重排选项卡和改进 UI

Windows Terminal是微软推出的全新终端应用程序,提供了包括命令提示符、PowerShell和WSL在内的命令行工具和Shell。近日通过Microsoft Store,微软发布了0.7版本更新。本次重大版本更新中引入了诸多新功能,包括支持多面板、选项卡重新排列、UI改进等等。 Windows Terminal v0.7主要新功能 多面板 现在用户可以将Windows Terminal窗口分隔称多个面板,这允许用户在当前标签页上同时打开多个命令行面板。 标签重排序 现在用户可以对标签页进行排序调整 禁止应用标题 现在,您可以禁止在Terminal中运行的应用程序发送的所有标题更改事件。这意味着,您可以将个人资料的“名称”或“ tabTitle”显示在标签中,而无需更新! 改进用户界面 Terminal不再有粗边框。新版本中边框要细很多,并且在Windows设置的“颜色”页面中设置边框时会显示您的强调颜色。 修复BUG 在粘贴时候行尾行为正常 Alt +箭头键不再打印多余的字符 当页面内容滚动到顶部之后,在使用“snapOnInput”时进行粘贴操作会自动滚动到下面命令行位置 快速打开或者关闭标签引发的崩溃减少 Cascadia Code更新 现在支持希腊文,西里尔文和越南文 现在提供powerline (Cascadia Code PL) 版本 此外还有不带编码连字(Cascadia Mono)的版本 Microsoft Store安装地址|更新日志

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册