当前位置:  编程技术>移动开发
本页文章导读:
    ▪Animation 卡通片透明转换        Animation 动画透明转换 今天公司让做Animation的动态转换效果。其中一个功能就是将一张图片透明后转换成另外一张图片。用Handler更新UI的时候总是达不到效果,后来才发现Animation有监听事.........
    ▪ 开发技能杂集(转)        开发技巧杂集(转) 1.检查是否有网络连接 view plain copy to clipboard print ? public   static   boolean  isNetworkAvailable(Context context) {   ConnectivityManager cm = (ConnectivityManager) context.getSystemSer.........
    ▪ mac 跟 window是 服务器 共享 访问       mac 和 window是 服务器 共享 访问 进入Finder,按command+k,输入smb://192.168.1.10(PC的固定ip)成功的! ......

[1]Animation 卡通片透明转换
    来源: 互联网  发布时间: 2014-02-18
Animation 动画透明转换
今天公司让做Animation的动态转换效果。其中一个功能就是将一张图片透明后转换成另外一张图片。用Handler更新UI的时候总是达不到效果,后来才发现Animation有监听事件,写个监听就搞定了。代码如下 有需要的参考吧
view = (ImageView)getTarget();
		alpha1 = new AlphaAnimation((float)fromAlpha, (float)toAlpha);
		alpha2 = new AlphaAnimation((float)toAlpha,(float)fromAlpha);
		alpha1.setDuration((long)(getDuration()*1000));
		alpha2.setDuration((long)(getDuration()*1000));

		alpha1.setAnimationListener(new AnimationListener() {
			
			@Override
			public void onAnimationStart(Animation animation) {
				// TODO Auto-generated method stub
			}	
			@Override
			public void onAnimationRepeat(Animation animation) {
				// TODO Auto-generated method stub
			}
			@Override
			public void onAnimationEnd(Animation animation) {
				// TODO Auto-generated method stub
				Bitmap bmp = BitmapFactory.decodeResource(TransitionActivity.mContext.getResources(), R.drawable.image2);
				view.setImageBitmap(bmp);
				view.startAnimation(alpha2);
			}
		});
		
		handler.post(new Runnable() {
			
			@Override
			public void run() {
					view.startAnimation(alpha1);
			}
		});
	}

另外还有一种方法就是用Android提供的AnimationSet将要播放的动画add到AnimationSet中,根据动画的时间一一执行。
@Override
	public Animation translate(float x, float y) {
		Animation alpha = new AlphaAnimation(fromAlpha, toAlpha);
		AnimationSet amSet = new AnimationSet(false);
		if(ImageObject.resId != 0){
			Animation alphaGlow = new AlphaAnimation(toAlpha,fromAlpha);
			alphaGlow.setDuration(1000);
			alphaGlow.setStartOffset(2000);
			amSet.addAnimation(alpha);
			amSet.addAnimation(alphaGlow);
			return amSet;
		}
		return alpha;
	}
1 楼 lyltiger 2011-03-02  
给放个源码吧!
2 楼 SylarLou 2011-03-02  
效果代码这里的就够了,你可以根据你需要改一下,或者把这段添加到你的代码里就好了
3 楼 wjb_forward 2011-03-04  
apiDemos里面那个Animation3D有这样用过
4 楼 wafj1984 2011-03-10  
这个比较但丁

    
[2] 开发技能杂集(转)
    来源: 互联网  发布时间: 2014-02-18
开发技巧杂集(转)

1.检查是否有网络连接

view plain copy to clipboard print ?
  • public   static   boolean  isNetworkAvailable(Context context) {  
  • ConnectivityManager cm = (ConnectivityManager) context.getSystemService(  
  • Context.CONNECTIVITY_SERVICE);  
  • NetworkInfo info = cm.getActiveNetworkInfo();  
  • return  (info !=  null  && info.isConnected());  
  • }  
  • 2.全屏和无标题

    view plain copy to clipboard print ?
  • // 全屏 ( No Statusbar )   
  • getWindow (). setFlags ( WindowManager . LayoutParams . FLAG _ FULLSCREEN ,  
  • WindowManager . LayoutParams . FLAG _ FULLSCREEN );  
  • // 无标题栏 ( No Titlebar )   
  • requestWindowFeature ( Window . FEATURE _ NO _ TITLE );  
  • 3.使用ViewStub延迟展开视图

    view plain copy to clipboard print ?
  • 1  ) 定义 ViewStub  
  • < ViewStub android : id = "@+ id / stub _ import "   
  • android : inflatedId ="@+ id / panel _ import "   
  • android : layout ="@ layout / progress _ overlay "   
  • android : layout _ width =" fill _ parent "   
  • android:layout_height="wrap_content"   
  • android:layout_gravity="bottom" />  
  • 2  )展开视图  
  • findViewById(R.id.stub_import).setVisibility(View.VISIBLE);  
  • // 或者 获取视图   
  • View importPanel = ((ViewStub)  
  • findViewById(R.id.stub_import)).inflate();  
  • 4.删除窗口背景

    1) 编码实现

    view plain copy to clipboard print ?
  • public   void  onCreate(Bundle icicle){  
  • super .onCreate(icicle);  
  • setContentView(R.layout.mainview);  
  • // 删除窗口背景   
  • getWindow().setBackgroundDrawable(null );  
  • ...  
  • }  
  • 2 )自定义主题实现

    view plain copy to clipboard print ?
  • < resources >   
  • < mce:style   name = "NoBackgroundTheme"   parent = "android:Theme" > <!--  
  • <item name="android:windowBackground">@null</item>  
  • --> </ mce:style > < style   name = "NoBackgroundTheme"   parent = "android:Theme"   mce_bogus = "1" > < item   name = "android:windowBackground" > @null </ item > </ style >   
  • </ resources >   
  • 5.预先缩放图像到视图大小

    view plain copy to clipboard print ?
  • originalImage = Bitmap.createScaledBitmap(  
  • originalImage, // 缩放图像   
  • view.getWidth(), // 视图宽度   
  • view.getHeight(), // 视图高度   
  • true );  // 线性过滤器   
  • Adpater 使用 ViewHolder 模式  
  • Adpater 使用 ViewHolder 模式  
  • public  View getView( int  pos, View convertView, ViewGro  
  • ViewHolder holder ;  
  • if  (convertView ==  null ) {  
  • convertView = mInflater.inflate(R.layout.list_item, null );  
  • holder = new  ViewHolder();  
  • holder.text = (TextView) convertView.findViewById(R.id  
  • holder.icon = (ImageView) convertView.findViewButId(R  
  • convertView.setTag(holder);  
  • } else  {  
  • holder = (ViewHolder) convertView.getTag();  
  • }  
  • holder.text.setText(DATA[pos]);  
  • holder.icon.setImageBitmap((pos & 1) == 1 ? mIcon1 : mIcon2);  
  • return  convertView;  
  • }  
  • 6.横竖屏切换时不重新加载 onCreate()

    为了防止横竖屏切换时 Activity 重新加载 onCreate ,
    只需要在 Activity 的配置文件里添加属性:
    android:configChanges="orientation|keyboardHidden|navigation"

    7.半透明主题

    1.Resource source file location : res/values/styles.xml
    <style name="myTranslucentTheme" parent="android:style/Theme.Translucent">
    <item name="android:windowBackground">@drawable/bg</item>
    </style>
    其中 bg 为一张半透明图片的索引
    2. 使用自定义半透明主题
    AndroidManifest.xml

    view plain copy to clipboard print ?
  • < activity   android:name = ".WallpaperActivity"   
  • android:label = "@string/wallpaper_titile"   
  • android:theme = "@style/myTranslucentTheme" >   
  • </ activity >   
  • 8.获取Android手机上的图片和视频缩略图

    大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果 我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图

    如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri我们可以转成String,这里保存着Android手机SD卡上的多媒体文件完整路径,

    有关具体的缩略图可以通过getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options) 或getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options) 方法获取,这两种方法返回Bitmap类型,而缩略图的分辨率可以从HEIGHT和WIDTH两个字段提取,在Android上缩略图分为两种,通过读取 KIND字段来获得,分别为MICRO_KIND和MINI_KIND 分别为微型和迷你两种缩略模式,前者的分辨率更低。这样我们平时获取文件系统的某个图片预览时,可以直接调用系统缩略图,而不用自己重新计算。

    最后Android123提示大家,缩略图保存在SD卡的DCIM目录,里面的.thumbnails是图片的,而.video_thumbnails是视频的,这两个文件夹为隐藏属性,一般的文件管理器都可以看到。

    9.Android ANR介绍与避免

    很多初入Android开发的网友可能发现ANR的字样,到底Android ANR是什么呢? 其实ANR就是Application Not Responding的全称,当某个应用处于长期假死状态时Android系统会弹出一个窗口上面写道,XXX is not responding给出两个按钮一个为force close一个为wait。

    可能触发ANR的情况

    1. 长时间的I/O处理,比如读写大文件,网络访问时造成的阻塞。

    2. 执行耗时的运算,Android默认为超过5000ms即5秒开始弹出ANR窗口,某些应用可能首次执行时没有缓存十分耗时,可以通过Splash播放闪屏Logo等方式来延缓加载

    3. Service和appWidget中也要注意多线程的使用,除非它和Activity工作在不同的进程。

    避免ANR的方法

    1. 单独开工作者线程,通过独立的Thread或使用类似AsyncTask的方式来处理耗时的内容。

    2. 耗时的操作尽量分段处理,使用类似状态机的方法,类似Symbian的活动对象将一个复杂的事情,分段执行。

    3. UI线程中不要处理过多的内容,比如将一个5MB的文本,让TextView去setText,要知道这种UI操作,没有什么好方法去解决的,所以Android123提示,遇到UI中需要执行复杂的操作,可以参考上面2提到的分段处理方式。

    10.AsyncTask对比Thread加Handler

    很多网友可能发现Android平台很多应用使用的都是AsyncTask,而并非Thread和Handler去更新UI,这里 Android123给大家说下他们到底有什么区别,我们平时应该使用哪种。从Android 1.5开始系统将AsyncTask引入到android.os包中,过去在很早1.1和1.0 SDK时其实官方将其命名为UserTask,其内部是JDK 1.5开始新增的concurrent库,做过J2EE的网友可能明白并发库效率和强大性,比Java原始的Thread更灵活和强大,但对于轻量级的使 用更为占用系统资源。Thread是Java早期为实现多线程而设计的,比较简单不支持concurrent中很多特性在同步和线程池类中需要自己去实现 很多的东西,对于分布式应用来说更需要自己写调度代码,而为了Android UI的刷新Google引入了Handler和Looper机制,它们均基于消息实现,有事可能消息队列阻塞或其他原因无法准确的使用。

      Android开发网推荐大家使用AsyncTask代替Thread+Handler的方式,不仅调用上更为简单,经过实测更可靠一些,Google在 Browser中大量使用了异步任务作为处理耗时的I/O操作,比如下载文件、读写数据库等等,它们在本质上都离不开消息,但是AsyncTask相比 Thread加Handler更为可靠,更易于维护,但AsyncTask缺点也是有的比如一旦线程开启即dobackground方法执行后无法给线程 发送消息,仅能通过预先设置好的标记来控制逻辑,当然可以通过线程的挂起等待标志位的改变来通讯,对于某些应用Thread和Handler以及 Looper可能更灵活。

    11.android.os.Debug调试工具使用方法

    在Android软件开发中最终的性能测试和调试显得至观重要,今天Android123和大家一起讨论下Google送给我们的android.os.Debug类,使用起来比较简单,我们先导入 import android.os.Debug这个包。

    在需要开始跟踪的地方加入 Debug.startMethodTracing(“/sdcard/cwj”); 

    最终在停止调试的地方加入 Debug.stopMethodTracing();

    最终在sdcard上生成的cwj文件我们可以用sdk\tools中的traceview来查看运行的结果。

    12.TextView多行本文滚动轻松实现

    Android中我们为了实现文本的滚动可以在ScrollView中嵌入一个TextView,其实TextView自己也可以实现多行滚动的,毕竟ScrollView必须只能有一个直接的子类布局。只要在layout中简单设置几个属性就可以轻松实现

    view plain copy to clipboard print ?
  • < TextView     
  •     android:id = "@+id/tvCWJ"     
  •     android:layout_width = "fill_parent"     
  •     android:layout_height = "wrap_content"     
  •     android:scrollbars = "vertical"     <!--垂直滚动条 -->   
  •     android:singleLine = "false"         <!--实现多行 -->   
  •     android:maxLines = "15"              <!--最多不超过15行 -->   
  •     android:textColor = "#FF0000"   
  •     />     
  • 当然我们为了让TextView动起来,还需要用到TextView的setMovementMethod方法设置一个滚动实例,代码如下

    view plain copy to clipboard print ?
  • TextView tvAndroid123 = (TextView)findViewById(R.id.tvCWJ);     
  • tvAndroid123.setMovementMethod(ScrollingMovementMethod.getInstance());   // Android开发网提示相关的可以查看SDK中android.text.method分支了解更多   
  • 12.Widget简单制作流程

    1、在 OnUpdate()中 定义一个 Intent
         Intent startActivityIntent = new Intent(context,WidgetLife.class);
    2、实例化一个 PendingIntent
         PendingIntent Pintent = PendingIntent.getActivity(context,0,startActivityIntent,0);
    3、实例RemoteView
         RemoteViews ActivityView = new RemoteViews(context.getPackageName(),R.layout.widget_layout);
    4、Button 事件
         ActivityView.setOnClickPendingIntent(R.id.Button,Pintent);
    5、更新Widget
         appWidgetManager.updateAppWidget(appWidgetIds,ActivityView);

    12.对话框【Dialog】去除白色边框代码

    边框, Dialog, Android, 对话框, 代码
    使用样式文件,在values 目录下新建styles.xml文件,编写如下代码:

    view plain copy to clipboard print ?
  • < resources >   
  •     < mce:style   name = "dialog"   parent = "@android:style/Theme.Dialog" > <!--  
  •         < item   name = "android:windowFrame" > @null </ item >   
  •         < item   name = "android:windowIsFloating" > true </ item >   
  •         < item   name = "android:windowIsTranslucent" > false </ item >   
  •         < item   name = "android:windowNoTitle" > true </ item >   
  •         < item   name = "android:background" > @android:color/black </ item >   
  •         < item   name = "android:windowBackground" > @null </ item >   
  •         < item   name = "android:backgroundDimEnabled" > false </ item >   
  •       
  • --> </ mce:style > < style   name = "dialog"   parent = "@android:style/Theme.Dialog"   mce_bogus = "1" >        < item   name = "android:windowFrame" > @null </ item >   
  •         < item   name = "android:windowIsFloating" > true </ item >   
  •         < item   name = "android:windowIsTranslucent" > false </ item >   
  •         < item   name = "android:windowNoTitle" > true </ item >   
  •         < item   name = "android:background" > @android:color/black </ item >   
  •         < item   name = "android:windowBackground" > @null </ item >   
  •         < item   name = "android:backgroundDimEnabled" > false </ item >   
  •     </ style >   
  • </ resources >   
  • 调用时,使用AlerDialog的接口类,Dialog 接口编写如下代码:

    view plain copy to clipboard print ?
  • Dialog dialog =  new  Dialog(SetActivity. this , R.style.dialog);  
  • dialog.setContentView(R.layout.test);  
  • dialog.show(); 

  •     
    [3] mac 跟 window是 服务器 共享 访问
        来源: 互联网  发布时间: 2014-02-18
    mac 和 window是 服务器 共享 访问
    进入Finder,按command+k,输入smb://192.168.1.10(PC的固定ip)成功的!

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    nosql iis7站长之家
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3