当前位置:  编程技术>移动开发
本页文章导读:
    ▪ListView的卡通片效果        ListView的动画效果 觉得单纯的加载listview还是很死板,虽然可以定义不错的背景,设置漂亮的分割线以及遮罩效果,但是可是加载的时候还是太生硬啊。想起了过去玩红警时那漂亮的菜单动画.........
    ▪ PopupWindow运用        PopupWindow使用 使用PopupWindow来显示一个浮层 点击按钮后弹出浮层       public class PopupWindowDemo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta.........
    ▪ ffmpeg decode audio 异常       ffmpeg decode audio 错误 只有第一个 packet decode 成功,后面的 packet 都提示 buffer smaller than AVCODEC_MAX_AUDIO_FRAME_SIZE。   Input #0, asf, from '/data/local/tmp/fifo': Metadata: Application : Windows Movie Maker 2.1..........

[1]ListView的卡通片效果
    来源: 互联网  发布时间: 2014-02-18
ListView的动画效果
觉得单纯的加载listview还是很死板,虽然可以定义不错的背景,设置漂亮的分割线以及遮罩效果,但是可是加载的时候还是太生硬啊。想起了过去玩红警时那漂亮的菜单动画。尝试的做了些动画效果。还很粗糙,也没有达到我预期的要求,不过一个早上的时间快过完了,还有公司的任务,所以暂且在这打住,post上来抛砖引玉,说不定有和我一样的想法的人能够完善他。记得通知我就是。。。下面开始贴代码 由于我用的日文系统(外包公司。。。) 所以只对关键的地方解释一下,代码很简单,也很容易就会。

引用
还是和平常一样定义一个listview

   FolksAdapter adapter=new FolksAdapter(ListViewAnimationActivity.this, strlist);
        listview.setAdapter(adapter);


引用
adapter继承了baseadapter这个类 中间最关键的地方

TextView txtView=(TextView) convertView.findViewById(R.id.textView1);
		txtView.setText(pList.get(position));
		Animation animation=AnimationUtils.loadAnimation(context, R.anim.txtview_trans_animation);
		Animation animation_new=new TranslateAnimation(position*50+screenWidth/5, 0, 0, 0); //screenHeight*5/10
		animation_new.setDuration(3000);
		txtView.setAnimation(animation_new);


最后来说说那些不如意的地方。
1、我想做出异步的效果,但是getview实际上执行的很快,效果没有体现出来,所以我认为可以做个监听器线程,分段的startanimation或者用asynktask也可以。
2、由右下向左上归并的效果没做出来,我估计要用到scale动画。先拉大再还原,从而做出从下往上浮动的效果?

    
[2] PopupWindow运用
    来源: 互联网  发布时间: 2014-02-18
PopupWindow使用

使用PopupWindow来显示一个浮层


点击按钮后弹出浮层


 

 

 

public class PopupWindowDemo extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.popup_window_demo);
        findViewById(R.id.popup_window_button).setOnClickListener(listener);
    }
    
    OnClickListener listener = new OnClickListener(){
        @Override
        public void onClick(View arg0) {
            LayoutInflater inflater = PopupWindowDemo.this.getLayoutInflater();
            View popupView = inflater.inflate(R.layout.popup_window, null);
            PopupWindow mPopupWindow = new PopupWindow(popupView,
                    LayoutParams.FILL_PARENT,  
                    LayoutParams.WRAP_CONTENT);
            mPopupWindow.showAtLocation(findViewById(R.id.popup_window), Gravity.CENTER, 0, 0);
        }
    };
}

 

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/popup_window"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="PopupWindow使用示例"/>
    <Button android:id="@+id/popup_window_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Popup"/>
</LinearLayout>

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:padding="10dip">
    <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/popup_window_bg">
        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="25dip"
            android:src="/blog_article/@drawable/popup_window_left/index.html"/>
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="这是一个浮层"
            android:textSize="20dip"
            android:textColor="#000000"
            android:layout_marginLeft="20dip"
            android:layout_gravity="center"/>
    </LinearLayout>
</LinearLayout>
 

 


    
[3] ffmpeg decode audio 异常
    来源: 互联网  发布时间: 2014-02-18
ffmpeg decode audio 错误

只有第一个 packet decode 成功,后面的 packet 都提示 buffer smaller than AVCODEC_MAX_AUDIO_FRAME_SIZE。

 

Input #0, asf, from '/data/local/tmp/fifo':
  Metadata:
    Application     : Windows Movie Maker 2.1.4026.0
    WM/ParentalRating: 
    WMFSDKVersion   : 9.00.00.3250
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    title           : 
    artist          : 
    copyright       : 
    comment         : 
  Duration: 00:42:45.29, start: 0.000000, bitrate: 0 kb/s
    Stream #0.0(tha): Audio: wmav2, 16000 Hz, 1 channels, s16, 16 kb/s
audio packet size = 640
sample_size = 9216, len = 640
audio packet size = 640
[wmav2 @ 0x173b0] buffer smaller than AVCODEC_MAX_AUDIO_FRAME_SIZE
sample_size = 9216, len = -1

 

 参考 http://qtdvd.com/guides/ffmpeg.html 以及 http://libav-users.943685.n4.nabble.com/audio-decoding-example-td944864.html 原来是少写了一行代码

 

sample_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;

ffmpeg 的 encoding-example.c 写的很详细,疏忽了。

 

    while(av_read_frame(pFormatCtx, &packet)>=0) {
        if(packet.stream_index==audioStream) {
			org_data = packet.data;
			org_size = packet.size;
			LOGV("audio packet size = %d\n", packet.size);
			while (packet.size > 0) {
				sample_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
				len = avcodec_decode_audio3(aCodecCtx, (uint16_t*)samples, &sample_size, &packet);
				LOGV("sample_size = %d, len = %d\n", sample_size, len);
				if (len < 0) {
					LOGE("Error while decoding\n");
				}
				packet.size -= len;
				packet.data += len;
			}
			
			packet.size = org_size;
			packet.data = org_data;
			
			av_free_packet(&packet);
        } else {
            av_free_packet(&packet);
        }

        if (quit) {
            break;
        }
    }
 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪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