当前位置: 编程技术>移动开发
本页文章导读:
▪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;
}
}
最新技术文章: