当前位置: 编程技术>移动开发
本页文章导读:
▪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上来抛砖引玉,说不定有和我一样的想法的人能够完善他。记得通知我就是。。。下面开始贴代码 由于我用的日文系统(外包公司。。。) 所以只对关键的地方解释一下,代码很简单,也很容易就会。
最后来说说那些不如意的地方。
1、我想做出异步的效果,但是getview实际上执行的很快,效果没有体现出来,所以我认为可以做个监听器线程,分段的startanimation或者用asynktask也可以。
2、由右下向左上归并的效果没做出来,我估计要用到scale动画。先拉大再还原,从而做出从下往上浮动的效果?
觉得单纯的加载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; } }
最新技术文章: