完全理解AndroidTouchEvent事件分发机制(二)分析解析

完全理解AndroidTouchEvent事件分发机制(二)分析解析
完全理解AndroidTouchEvent事件分发机制(二)分析解析

完全理解Android TouchEvent事件分发

机制(二)

可以看出来,事件一旦被某一层消费掉,其它层就不会再消费了

到这里其实对事件分发的机制就有个大概了解,知道里面的原理是怎么回事。

下面就让我们来去梳理一下这个事件分发所走的逻辑。

我们仔细思考一下,为什么有的事件有UP有的没有?

为什么Up和Down的顺序不同呢?

为什么要按照这个顺序执行呢?

这个例子主要是为了说明分发、拦截、消费的流程

以例一为例,在每个View 都不拦截down 事件的情况下,down 事件是这样传递的

super.dispatchTouchEvent方法,上面我们介绍过,

这个方法内部实际上是调用的onTouchEvent方法

所以最后的输出日志顺序就是从父到子依次调用分发和拦截,然后从子到父依次调用消费。

例二也是同理,区别在于

当Father拿到事件的时候,选择了拦截下来不再询问其他,

但是Father也没消费,直接又还回给了Grandpa,

Grandpa同样也没有消费这个事件。

所以最终的顺序就是,从Grandpa到Father再返回Grandpa就结束了,没有经过LogImageView。

例三的情况就不太一样了

当Grandpa->Father->LogImageView 传递到LogImageView时,LogImageView不消费又返回给了Father,Father在onTouchEvent消费掉了事件。

然后反馈给Father说事件已经消费。,就等于parent.dispatchTouchEvent返回true给上一级的Grandpa,

Grandpa不会再调用grandpa.onTouchEvent方法。

从这里我们可以总结出来:

**dispatchTouchEvent返回值的作用是用于标志这个事件是否“消费了”,

无论是自己或者下面的子一级用掉了都算是消费掉。**

再如这个例子中,如果我们让LogImageView消费掉事件,

那么Father收到LogImageView的消息后,也会调用parent.dispatchTouchEvent返回true给Grandpa,

所以这个方法返回值的true是只要用掉就行,无论自己还是下面某一级,

而非我把事件传递下去就是true了,下面没人消费最终其实还是返回false的。

至此,我们来总结一下这三个方法的大致作用:

dispatchTouchEvent方法内容里处理的是分发过程。可以理解为从Grandpa->Father->LogImageView一层层分发的动作

dispatchTouchEvent的返回值则代表是否将事件分发出去用掉了,自己用或者给某一层子级用都算分发成功。比如Father消费了事件,或者他发出去给的LogImageView消费了事件,

这两种情况下B的dispatchTouchEvent都会返回true给Grandpa

onInterceptTouchEvent会在第一轮从父到子的时候在分发时调用,以它去决定是否拦截掉此事件不再向下分发。如果拦截下来,就会调用自己的onTouchEvent处理;如果不拦截,则继续向下传递

onTouchEvent代表消费掉事件。方法内容是具体的事件处理方法,如何处理点击滑动等。

onTouchEvent的返回值则代表对上级的反馈,通知这个东西我用掉啦,然后他的父级就会让分发方法也返回true

下面我们来解释为什么例一、二中没有Up,而例三中有

一个Action_DOWN,一个ACTION_UP,若干个ACTION_MOVE,才构成完整的事件。

前俩例子里为什么没有Up呢,很好理解,

因为他们都没有消费事件啊,所以他们只有DOWN事件,因此只有Down,没Up。

例三做类比,Father消费掉了这个事件

流程依然是先从Grandpa开始分配

(https://www.360docs.net/doc/556976582.html,atchTouchEvent)

(grandpa.onInterceptTouchEvent 判断是否拦截)

Grandpa还是没拦下来,继续分发事件(grandpa不拦截,然后调用child.dispatchTouchEvent)事件到了Father,Father进行了消费。(parent没有调用拦截方法)

Father调用onTouchEvent返回true消费掉事件,完成了整个行为。

**【例四】

在Grandpa类的onInterceptTouchEvent中添加个判断,

如果动作是UP就return true拦截掉,DOWN则不拦截和之前一样**

打印如下:

04-04 07:16:43.353 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: GrandPaViewGroup dispatchTouchEvent Event 0

04-04 07:16:43.355 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: GrandPaViewGroup onInterceptTouchEvent Event 0

04-04 07:16:43.355 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: FatherViewGroup dispatchTouchEvent Event 0

04-04 07:16:43.356 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: FatherViewGroup

onInterceptTouchEvent Event 0

04-04 07:16:43.356 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: LogImageView dispatchTouchEvent Event 0

04-04 07:16:43.357 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: LogImageView onTouchEvent Event 0

04-04 07:16:43.357 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: FatherViewGroup onTouchEvent Event 0

04-04 07:16:43.392 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: GrandPaViewGroup dispatchTouchEvent Event 1

04-04 07:16:43.392 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: GrandPaViewGroup onInterceptTouchEvent Event 1

04-04 07:16:43.392 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: FatherViewGroup dispatchTouchEvent Event 3

04-04 07:16:43.392 2344-2344/com.shanlovana.rcimageview E/ShanCanCan: FatherViewGroup onTouchEvent Event 3

**前面Down行为和例三一样,后面就不同了

UP流程变了,然后多了个CANCEL的动作

这里我们可以理解为**

GrandPa调用dispatchTouchEvent分发UP事件

GrandPa调用onInterceptTouchEvent返回true,拦截UP,DOWN事件则是正常的传递FatherView调用dispatchTouchEvent分发CANCEL动作

FatherView使用CANCEL动作调用onTouchEvent方法,结束

**大概也就了解的差不多了,还剩一个TouchTarget目标的概念,

为什么例三中Up和Down流程不同?**

回头去看完整源码:

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

boolean handled = false;

if (onFilterTouchEventForSecurity(ev)) {

if (actionMasked == MotionEvent.ACTION_DOWN) {

// 1.每次起始动作就重置之前的TouchTarget等参数

cancelAndClearTouchTargets(ev);

resetTouchState();

}

final boolean intercepted;

if (actionMasked == MotionEvent.ACTION_DOWN || mFirstTouchTarget != null) { // 2.如果是起始动作才拦截,或者已经有人消费掉了事件,再去判断拦截

// 起始动作是第一次向下分发的时候,每个view都可以决定是否拦截,然后进一步判断是否消费,很好理解

// 如果有人消费掉了事件,那么也拦截~ 就像例四中的情况,也可以再次判断是否拦截的

final boolean disallowIntercept = (mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0;

if (!disallowIntercept) {

// 3.这里可以设置一个disallowIntercept标志,如果是true,就是谁收到事件后都不准拦截!!!

intercepted = onInterceptTouchEvent(ev);

ev.setAction(action);

} else {

intercepted = false;

}

} else {

intercepted = true;

}

TouchTarget newTouchTarget = null;

boolean alreadyDispatchedToNewTouchTarget = false;

if (!canceled && !intercepted) {

// 4.如果未拦截,只有Down动作才去子一级去找目标对象~

// 因为找目标这个操作只有Down中才会处理

if (actionMasked == MotionEvent.ACTION_DOWN ) {

final int childrenCount = mChildrenCount;

if (newTouchTarget == null && childrenCount != 0) {

for (int i = childrenCount - 1; i >= 0; i--) {

newTouchTarget = getTouchTarget(child);

if (dispatchTransformedTouchEvent(ev, false, child, idBitsToAssign)) {

newTouchTarget = addTouchTarget(child, idBitsToAssign);

alreadyDispatchedToNewTouchTarget = true;

break;

}

}

}

}

}

if (mFirstTouchTarget == null) {

// 5.把自己当做目标,去判断自己的onTouchEvent是否消费

handled = dispatchTransformedTouchEvent(ev, canceled, null,

TouchTarget.ALL_POINTER_IDS);

} else {

// 6.如果有人消费掉了事件,找出他~

TouchTarget target = mFirstTouchTarget;

while (target != null) {

// 7.消费对象信息其实是一个链式对象,记载着一个一个传递的人的信息,遍历调用它child的分发方法

final TouchTarget next = target.next;

if (dispatchTransformedTouchEvent(ev, cancelChild,

target.child, target.pointerIdBits)) {

handled = true;

}

target = next;

}

}

}

return handled;

}

dispatchTransformedTouchEvent方法,内部简化代码为:

private boolean dispatchTransformedTouchEvent(MotionEvent event, boolean cancel, View https://www.360docs.net/doc/556976582.html,hild, int desiredPointerIdBits) {

final boolean handled;

if (child == null) {

handled = super.dispatchTouchEvent(transformedEvent);

} else {

handled = child.dispatchTouchEvent(transformedEvent);

}

return handled;

}

**就是判断如果没child了(是ViewGroup但是没子控件,或者自己就是View),

如果没child,就调用View的dispatchTouchEvent方法,

实质就是调用onTouchEvent判断是否消费掉事件

如果有child,就调用child的dispatchTouchEvent将事件一层层向下分发**

例三四中的复杂情况

其中关键主要在于多了一个TouchTarget的处理.

向下传递的核心主要是在于dispatchTransformedTouchEvent方法

第一轮动作的Down时,只要不拦截,就会在注释4代码处遍历所有child调用该方法层层传递下去

而后续其他动作时,就会进入注释6代码条件,然后遍历TouchTarget中的信息用该方法层层分发

注意不要误解:

第一次Down的时候会for循环所有child

第二轮Up的时候也会while(target.next)的迭代循环挨个判断,但是next是遍历同级,不是子级

dispatchTrancformTouchEvent(target.child)这里的.child才是向子一级一层一层分发传递的地方.

这个TouchTarget对象,主要保存的是传递路线信息,它是一个链式结构

不过这个路线不是Grandpa->Father->LogImageView的一个单子,而是每个ViewGroup都会保存一个向下的路线信息.

Cancel部分

dispatchTrancformTouchEvent中会判断,如果cancel=true动作,

则会把动作改成ACTION_CANCEL一层一层的传下去.

注意:

onTouch和onTouchEvent有什么区别,又该如何使用?

从源码中可以看出,这两个方法都是在View的dispatchTouchEvent中调用的,onTouch优先于onTouchEvent执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent 将不会再执行。

另外需要注意的是,onTouch能够得到执行需要两个前提条件,第一mOnTouchListener的值不能为空,第二当前点击的控件必须是enable的。因此如果你有一个控件是非enable的,那么给它注册onTouch事件将永远得不到执行。对于这一类控件,如果我们想要监听它的touch事件,就必须通过在该控件中重写onTouchEvent方法来实现。

到这里,我们的事件传递就全部讲解完成了,下面让我们看看他的实际用途吧。

用途:

滑动事件冲突的解决方法:

外部拦截法

外部拦截法是指在有点击事件时都要经过父容器,那么在父容器时如果需要拦截就拦截自己处理,不需要则传递给下一层进行处理,

下面看个例子

首先定义一个水平滑动的HorizontalScrollView,看主要代码

主要的拦截是需要重写onInterceptTouchEvent

此示例是借鉴于lylodlig的一篇文章,在此感谢。

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

boolean intercepted = false;

int x = (int) ev.getX();

int y = (int) ev.getY();

switch (ev.getAction()) {

case MotionEvent.ACTION_DOWN:

//down事件不拦截,否则无法传给子元素

intercepted = false;

if (!mScroller.isFinished()) {

mScroller.abortAnimation();

intercepted = true;

}

break;

case MotionEvent.ACTION_MOVE:

int deltaX = x - mLastXIntercept;

int deltaY = y - mLastYIntercept;

//水平滑动则拦截

if (Math.abs(deltaX) > Math.abs(deltaY) + 5) {

https://www.360docs.net/doc/556976582.html,pted = true;

} else {

intercepted = false;

}

break;

case MotionEvent.ACTION_UP:

//不拦截,否则子元素无法收到

intercepted = false;

break;

}

//因为当ViewGroup中的子View可能消耗了down事件,在onTouchEvent无法获取,// 无法对mLastX赋初值,所以在这里赋值一次

mLastX = x;

mLastY = y;

mLastYIntercept = y;

mLastXIntercept = x;

return intercepted;

}

在down事件不需要拦截,返回false,否则的话子view无法收到事件,将全部会由父容器处理,这不是希望的;up事件也要返回false,否则最后子view收不到

看看move事件,当水平滑动距离大于竖直距离时,代表水平滑动,返回true,由父类来进行处理,否则交由子view处理。这里move事件就是主要的拦截条件判断,如果你遇到的不是水平和竖直的条件这么简单,就可以在这里进行改变,比如,ScrollView嵌套了ListView,条件就变成,当ListView滑动到底部或顶部时,返回true,交由父类滑动处理,否则自身ListView滑动。

在onTouchEvent中主要是做的滑动切换的处理

@Override

public boolean onTouchEvent(MotionEvent event) {

mVelocityTracker.addMovement(event);

int x = (int) event.getX();

int y = (int) event.getY();

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

if (!mScroller.isFinished()) {

mScroller.abortAnimation();

}

break;

case MotionEvent.ACTION_MOVE:

int deltaX = x - mLastX;

int deltaY = y - mLastY;

if (getScrollX() < 0) {

scrollTo(0, 0);

}

scrollBy(-deltaX, 0);

break;

case MotionEvent.ACTION_UP:

int scrollX = getScrollX();

https://www.360docs.net/doc/556976582.html,puteCurrentVelocity(1000);

float xV elocityTracker = mVelocityTracker.getXVelocity();

if (Math.abs(xVelocityTracker) > 50) {//速度大于50则滑动到下一个

mChildIndex = xVelocityTracker > 0 ? mChildIndex - 1 : mChildIndex + 1;

} else {

mChildIndex = (scrollX + mChildWith / 2) / mChildWith;

}

mChildIndex = Math.max(0, Math.min(mChildIndex, mChildrenSize - 1));

int dx = mChildIndex * mChildWith - scrollX;

smoothScrollBy(dx, 0);

mVelocityTracker.clear();

break;

}

mLastY = y;

mLastX = x;

return true;

}

在这个嵌套一个普通的ListView,这样就可以解决水平和竖直滑动冲突的问题了。

android:layout_width="match_parent"

android:layout_height="200dp">

android:id="@+id/listView"

android:layout_width="match_parent"

android:layout_height="match_parent" />

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@android:color/holo_blue_bright"

android:text="2" />

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@android:color/holo_green_dark"

android:text="3" />

内部拦截法

内部拦截法是父容器不拦截任何事件,所有事件都传递给子view,如果需要就直接消耗掉,不需要再传给父容器处理

下面重写一个ListView,只需要重写一个dispatchTouchEvent方法就OK

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

int x = (int) ev.getX();

int y = (int) ev.getY();

switch (ev.getAction()) {

case MotionEvent.ACTION_DOWN:

//子View的所有父ViewGroup都会跳过onInterceptTouchEvent的回调

getParent().requestDisallowInterceptTouchEvent(true);

https://www.360docs.net/doc/556976582.html,ak;

case MotionEvent.ACTION_MOVE:

int deltaX = x - mLastX;

int deltaY = y - mLastY;

if (Math.abs(deltaX) > Math.abs(deltaY) + 5) {//水平滑动,使得父类可以执行onInterceptTouchEvent

getParent().requestDisallowInterceptTouchEvent(false);

}

break;

}

mLastX = x;

mLastY = y;

return super.dispatchTouchEvent(ev);

}

在down事件调用getParent().requestDisallowInterceptTouchEvent(true),这句代码的意思是使这个view的父容器都会跳过onInterceptTouchEvent,在move中判断如果是水平滑动就由父容器去处理,父容器只需要把之前的onInterceptTouchEvent改为下面那样,其他不变.

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

int x = (int) ev.getX();

int y = (int) ev.getY();

if (ev.getAction() == MotionEvent.ACTION_DOWN) {

mLastX = x;

mLastY = y;

if (!mScroller.isFinished()) {

mScroller.abortAnimation();

return true;

}

return false;

} else {

//如果是非down事件,说明子View并没有拦截父类的onInterceptTouchEvent

//说明该事件交由父类处理,所以不需要再传递给子类,返回true

return true;

}

}

解决这些问题的基本的思想就是这些,希望可以帮助到您。

如何做好电视新闻评论节目

如何做好电视新闻评论节目 要想做好电视新闻评论就要先了解什么是电视新闻评论,电视新闻评论是电视台就当前具有较高新闻价值的重大问题和新闻事件发表看法,进行解释分析,是一种具有政治倾向性的以广大观众为对象的电视新闻体裁。是电视反映和引导社会舆论,实行舆论监督,指导生活和工作的重要新闻报道体裁。在我国,有很多渠道或方式去做电视新闻评论,而对电视新闻进行评论的最大的平台就是电视新闻评论节目,那什么是电视新闻评论节目呢?传统意义上将电视新闻评论节目界定为一种节目形态;就目前看,电视新闻评论节目界定为:最终以传播新近发生的意见性信息为目的一种电视传播手段。因此,以这种传播手段为核心的电视节目都属于电视新闻评论节目。 在世界上,不同的国家和地区对电视新闻评论节目的分类略有不同;我国电视新闻评论节目可以根据意见性信息与叙述性信息在节目内容中占据的不同比例以及不同的组合形态分为:主评型和述评结合型两大类。 第一种,主评型;主评型电视新闻评论节目中,意见性信息与叙述性信息的比例几近4:1,叙述性信息基本是作为电视新闻评论节目的新闻由头。这种类型的电视新闻评论节目与平面媒体的新闻评论文章有异曲同工之处。但是,电视作为一种视听兼备的电子媒介,必将要发挥它的传播符号优势。因此,在主评型电视新闻评论节目中,承载意见性信息的最佳传播符号必定是口语,而最佳传播渠道便是谈话。根据日常生活经验,谈话的场景必将影响人们观点的表达,从而制约意见性信息的传播效果。为进一步加深对主评型电视新闻评论节目的认识,依据不同的交流方式结合成功的案例又将这类节目分为三种模式:对话式新闻评论、家常式新闻评论和沙龙式新闻评论。他们分别对应的电视节目是:《时事开讲》、《锵锵三人行》和《实话实说》。 第二种就是述评结合型,述评结合型电视新闻评论节目中,意见性信息与叙述性信息百分比大概分为两类:一类比例接近1:1,另一类比例接近1:4。笔者将意见性信息与叙述性信息比例接近1:1、且以两种信息交替出现来表现节目内容的电视新闻评论节目称为边述边评型;将意见性信息与叙述性信息比例接近1:4、且以两种信息平行出现来表现节目内容的电视新闻评论节目称为述后点评型。 根据意见性信息与叙述性信息在节目内容中的不同比例以及不同的组合形态所划分的两大类新闻评论节目,在节目的基本构成要素、时效性、审美性以及受众参与性等方面都具备各自的特点。主持人和嘉宾(或新闻评论员)是新闻评论节目的两大核心要素。随着近年来新闻评论节目的发展,主持人与嘉宾的关系已经走出了《焦点访谈》类评论节目“主持人核心式”的一元化模式,呈现出“主持人核心式”、“嘉宾核心式”、“主持人与嘉宾对等式”等多元化的形态,这些形态也是与新闻评论节目的两大类型相互对应的。主评型和述评型新闻评论节目因为传播信息比例和节目形态的差异,以致受众参与性在节目中也有不同的体现。当新闻评论节目的早期形态言论性短评和政论片出现后,有学者归结了“以言论为主的电视评论节目在接受学上的效果越来越弱化”这样的结论,同时将原因定为“节目对事实的转述及其结论,使受众‘可以选择’和‘参与选择’的内在要求基本不能实现。”这种情形在《时事开讲》、《实话实说》等一系列言论节目成功后很难再坚持。以传播意见性信息为主的主评型新闻评论节目,其接受效果并没有弱化,受众“可以选择”和“参与选择”的要求也得以实现。受众的“参与性评论”已经不是《焦点访谈》制片人赵微所说的“通过对记者提供的事实的理性思考,共同参与完成对事件的评论”,而是受众具备了真正的发言权,我们可以在主评型新闻评论节目中随时听到受众的声音,无论是在现场,还

Android焦点事件分发与传递机制

Android焦点事件分发与传递机制 下面我们就从源码来带大家进行安卓TV焦点事件的传递 这里先给出Android系统View的绘制流程: 依次执行View类里面的如下三个方法: measure(int ,int) :测量View的大小 layout(int ,int ,int ,int) :设置子View的位置 draw(Canvas) :绘制View内容到Canvas画布上 ViewRootImpl的主要作用如下(此处不多讲,如有意图,看源码): A:链接WindowManager和DecorView的纽带,更广一点可以说是Window和View之间的纽带。 B:完成View的绘制过程,包括measure、layout、draw过程。 C:向DecorView分发收到的用户发起的event事件,如按键,触屏等事件。 ViewRootImpl不再多余叙述,进入正题: Android焦点分发的主要方法以及拦截方法的讲解。 在RootViewImpl中的函数通道是各种策略(InputStage)的组合,各策略负责的任务不同,如SyntheticInputStage、ViewPostImeInputStage、NativePostImeInputStage等等,这些策略以链表结构结构起来,当一个策略者没有消费事件时,就传递个下一个策略者。其中触摸和按键事件由ViewPostImeInputStage处理。

@Override protected int onProcess(QueuedInputEvent q) { if (q.mEvent instanceof KeyEvent) { return processKeyEvent(q);//如果是按键事件走此处,处理按键和焦点问题了 } else { final int source = q.mEvent.getSource(); if ((source & InputDevice.SOURCE_CLASS_POINTER) != 0) { return processPointerEvent(q);//如果是触摸事件走此处 } else if ((source & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) { return processTrackballEvent(q); } else { return processGenericMotionEvent(q); } } } processKeyEvent(QueuedInputEvent q)源码如下: @Override protected void onDeliverToNext(QueuedInputEvent q) { if (mUnbufferedInputDispatch && q.mEvent instanceof MotionEvent && ((MotionEvent)q.mEvent).isTouchEvent() && isTerminalInputEvent(q.mEvent)) { mUnbufferedInputDispatch = false; scheduleConsumeBatchedInput(); } super.onDeliverToNext(q); } private int processKeyEvent(QueuedInputEvent q) { final KeyEvent event = (KeyEvent)q.mEvent; // Deliver the key to the view hierarchy. if (mView.dispatchKeyEvent(event)) { return FINISH_HANDLED; } if (shouldDropInputEvent(q)) { return FINISH_NOT_HANDLED; }

《新闻调查》节目分析

《新闻调查》节目分析 新闻传播学院10广电班黄露1006010138 节目形态 节目类型:深度新闻评论类节目。《新闻调查》的成立时建立在《东方时空》和《焦点访谈》上的。当年由于《焦点访谈》节目播出时长太短,受客 观原因限制,对新闻的调查不能够太深入,所以为了要成立一档能够 深入调查新闻事实的栏目,《新闻调查》应运而生。 节目时长:45分钟,这较之前的《焦点访谈》多出了十几二十分钟,这使得记者对新闻的采访深度和报道的张度都有所提高。 节目播出时间:(首播)周六21:30-22:15,(重播)周日0:15-1:00、2:45-3:30、4:15-5:00 14:10—14:55 节目播出方式:录播形式。 节目口号:正在发生的历史,新闻背后的新闻。 节目定位:比《焦点访谈》更深层次的解剖社会问题的大型深度节目。它以记者的调查行为为表现手段、以探寻事实真相为基本内容、以做真正的调 查性报道为追求目标,崇尚理性、平衡和深入的精神气质。 拍摄方式:双机拍摄,一台拍采访对象,一台拍记者。这样,一方面能够真实地记录下采访对象的行为言语,又能够客观地记录记者的提问和评论。 拍摄后期也可以在两个机位之间相间选取画面剪辑拼接,如此可使得 节目更加真实可信,提高了片子的记录性特点。 节目内容 选题:选题方向:《新闻调查》选取的是社会广泛关注的重大新闻事件和社会热点问题作为节目的选题。主要有以下类型:1、全面深入的重大新闻事件背景调查2、国计民生改革热点话题难点疑点解惑3、大时代背景下一波三折的新闻故事。例如,98抗洪三部曲,在《新闻调查》历史上留下了里程碑式的记录。《保卫荆江》全国收视率排名第六,创下了《新闻调查》的收视纪录。 选题来源:l、观众来信、来电、来访、手机短信、电子邮件。 2、通讯员及固定“线人” 3、自主策划 4、内参资料 5、各部委新闻办 6、各地联动媒体信息通报 7、互联网 8、报纸、电台等其他媒体 叙事方式:1、《新闻调查》的叙事方式是多角度分析一个新闻事件,并进行递进式分析的。比如当年《新闻调查》做了一期关于《宏志班》的节目, 就将人们的关注点引到了城市贫困的问题上,这对于当时社会只关注 农村贫困的问题是有突破性的,可以说它的叙事角度是很新颖的。而

浅议Qt的事件处理机制

浅议Qt的事件处理机制 深入了解事件处理系统对于每个学习Qt人来说非常重要,可以说,Qt是以事件驱动的UI工具集。大家熟知Signals/Slots在多线程的实现也依赖于Qt的事件处理机制。 在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEvent. 接下来依次谈谈Qt中有谁来产生、分发、接受和处理事件: 1. 谁来产生事件:最容易想到的是我们的输入设备,比如键盘、鼠标产生的 keyPressEvent,keyReleaseEvent,mousePressEvent,mouseReleaseEvent事件(他们被封装成QMouseEvent和QKeyEvent),这些事件来自于底层的操作系统,它们以异步的形式通知Qt事件处理系统,后文会仔细道来。当然Qt自己也会产生很多事件,比如QObject::startTimer()会触发QTimerEvent. 用户的程序可还以自己定制事件。 2. 谁来接受和处理事件:答案是QObject。在Qt的内省机制剖析一文已经介绍QObject 类是整个Qt对象模型的心脏,事件处理机制是QObject三大职责(内存管理、内省(intropection)与事件处理制)之一。任何一个想要接受并处理事件的对象均须继承自QObject,可以选择重载QObject::event()函数或事件的处理权转给父类。

3. 谁来负责分发事件:对于non-GUI的Qt程序,是由QCoreApplication负责将QEvent分发给QObject的子类-Receiver. 对于Qt GUI程序,由QApplication来负责。 接下来,将通过对代码的解析来看看QT是利用event loop从事件队列中获取用户输入事件,又是如何将事件转义成QEvents,并分发给相应的QObject处理。 [cpp]view plainc opy 1.#include 2.#include "widget.h" 3.//Section 1 4.int main(int argc, char *argv[]) 5.{ 6. QApplication app(argc, argv); 7. Widget window; // Widget 继承自QWidget 8. window.show(); 9.return app.exec(); // 进入Qpplication事件循环,见section 2 10.} 11.// Section 2: 12.int QApplication::exec() 13.{ 14.//skip codes 15.//简单的交给QCoreApplication来处理事件循环=〉section 3 16.return QCoreApplication::exec(); 17.} 18.// Section 3 19.int QCoreApplication::exec() 20.{ 21.//得到当前Thread数据 22. QThreadData *threadData = self->d_func()->threadData; 23.if (threadData != QThreadData::current()) {

凤凰卫视的成功之道

凤凰卫视的成功之道 凤凰卫视在1996年成立,而今已发展成为华语卫视的强势品牌,创造了属于电视的奇迹。俗话说,千里之行始于足下,凤凰卫视之所能取得今天的成绩,就是因为它懂得如何在逆境中求生存,善于积极开拓创造经营环境。 扬长避短 凤凰卫视是近年来卫星电视业中的佼佼者。从1996年3月31日凤凰卫视中文台开播,到2000年6月30日凤凰卫视控股有限公司在香港联合交易所的创业板成功挂牌上市,仅四年多一点的时间,这个华人受众最广泛的华语卫星电视,就从单一频道扩展成为多频道的卫星电视平台。 虽然中国内地对于境外及港澳台地区卫星电视的接收有严格的规定,但是凤凰卫视利用总部所在地香港毗邻的有利地理位置,而且严格遵守内地的新闻纪律,知道如何做才不至于“触地雷”,所以,广东省被批准通过有线电视网接收凤凰卫视。另外不同的媒体,其地理市场的自由度也很不一样。有的媒体不受任何时间和空间的限制,可以自主选择并推广覆盖区域,有的媒体的覆盖范围则受到技术本身的制约。凤凰卫视利用卫星电视技术,最早开播的中文台覆盖面就包括了54个国家和地,扩大了了凤凰卫视的关注面。 崇高的板报宗旨 凤凰卫视以“向世界发出华人的”声音、“拉近全球华人的距离”、“构建两岸三地桥梁”作为自己的办台宗旨,成立之初就树立了“弘扬中华传统文化,拉近全世界华人距离”的理念,凤凰卫视的魅力还在于它敏捷快速的反应机制,在全球的每一个角落,发生异常,都能刺激到凤凰人的新闻欲。 凤凰的创作班子也是集创造性与及时性于一体,既敏感又举重若轻的刘长乐和热情又不缺乏理智的王纪言组成的超级创意组合,还有许多资深的评论员,制作人都能对新闻价值做出准确地定位和判断。 为了节目的独特性,凤凰卫视不断加大自制节目的比重。中文台刚成立的头一年里,每天首播7、8个小时,其中自制节目不到1个小时。现在每天首播10个小时左右,自制节目达6个小时以上。一些历时很长的王牌节目,如“小莉看时事”、“凤凰早班车”深深赢得了观众和广告商的心。而近来的“千禧之旅”、“欧洲之旅”等大规模自制节目则更为凤凰卫视增加了印象分。新近启播的资讯台,每周除了几个小时的节目是向外采购的,如购买美国哥伦比亚广播公司的《60分钟》节目,基本上所有的节目都是自制的。收视观众表示喜欢收看凤凰卫视中文台的原因有:节目内容丰富多彩,娱乐性强;因为是境外电视台,节目有新鲜感;形式活泼;能接触港台风土人情。 明星战略 凤凰之所以能如此快速地崛起,其中一个非常重要的策略就是大力树立名牌主持人,全力让主持人出名,这是凤凰树立品牌,开拓市场的重要战略。 明星作为品牌代言人,是商业领域的推销手法,通过对偶像的认知,达到对产品的认知。这中间体现了流行文化的构成要素:知名度、非理性、接触频率、崇拜心理、趋重心理、时尚需求等等。凤凰利用这种做法,它首先认定主持人就是凤凰的名片,让观众想到主持人就想起凤凰。而且主持人与节目是相互促进的,

Android 编程下 Touch 事件的分发和消费机制及代码

Android 编程下Touch 事件的分发和消费机制(一) 2013年06月04日09:59供稿中心:课工场 摘要:Android 中与Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、 Android 中与Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup、View、Activity。方法与控件的对应关系如下表所示: 从这张表中我们可以看到ViewGroup 和View 对与Touch 事件相关的三个方法均能响应,而Activity 对onInterceptTouchEvent(MotionEvent ev) 也就是事件拦截不进行响应。另外需要注意的是View 对dispatchTouchEvent(MotionEvent ev) 和onInterceptTouchEvent(MotionEvent ev) 的响应的前提是可以向该View 中添加子View,如果当前的View 已经是一个最小的单元View(比如TextView),那么就无法向这个最小View 中添加子View,也就无法向子View 进行事件的分发和拦截,所以它没有dispatchTouchEvent(MotionEvent ev) 和 onInterceptTouchEvent(MotionEvent ev),只有onTouchEvent(MotionEvent ev)。 一、Touch 事件分析

凤凰卫视时事评论节目

凤凰卫视时事栏目初探 摘要:新闻评论节目在香港最早可以追溯到凤凰卫视的《时事开讲》,其开创了当时电视新闻界时事之风,也开了中国电视台个人化新闻时事评论节目之先河。凤凰卫视将时事评论栏目从开始就做到极致。依托于主持人的沉稳机智,评论员的冷静犀利,记者们的勇敢客观和领导人的智慧果决,凤凰打造了一档又一档受观众热烈追捧的时事评论栏目。世界通过凤凰了解了中国的态度,中国通过凤凰听到世界的声音。对凤凰卫视时事评论节目进行研究,既要总结其成就,为国内大陆其他电视台的同类节目提供借鉴;也需要总结其不足,期望能为凤凰卫视和国内其他电视台的发展提供些许启发。 关键词:凤凰卫视;时事评论节目;要素分析;特色;影响 拥有独特的运作是凤凰卫视的一大特色,凤凰卫视依靠这点一直在时事评论栏目上推陈出新。而凤凰卫视的传播策略,媒体运作程序,新闻理念也给它提供了很大的支持,这也引起了许多专家学者的研究和讨论。其中具有代表性的《解密凤凰》一书是以时事评论栏目《时事开讲》为主线来解析凤凰卫视运作机制及幕后故事的著作。作者师永刚先生为凤凰卫视时事评论栏目的研究提供了宝贵的资料。对节目的分析评论,节目创建过程、评论节目主持人和评论员介绍以及电视台运作手段等方面讲解比较详细的目前也只有《解密凤凰》一书。这对凤凰卫视时事评论节目进行系统研究的很有帮助。对凤凰卫视时事评论节目的初探,可以发现它所有的特长和目前仍有的不足,希望可以给其时事评论节目的发展做些许参考。 一、开评论之先风 (一)“评论员” 1999年5月9日可以说是中国电视史上一个关键性的日子,这一天打开了一个新的电视形态之门,创造了凤凰资讯类节目的另一个分支,即时事分析和时事评论。1999年5月9日,在北约轰炸中国驻南大使馆的特殊时期,一档临时制作的特别节目“中国人今天说不”让凤凰卫视吸引了世人的目光。节目制作时间十分仓促,手头准备的资料也并不全面,不足以做一档两个小时的节目,策划人决定在直播节目中加入现场评论。这种随着事态发展边看边评论的形式,使凤凰卫视出现了一种事件现场报道加评论的新闻评论节目模式。1999年5月的大使馆事件让凤凰卫视真正形成了一种新闻评论的模式,即直播加现场即时的分析评论。 尽管在今天看来凤凰卫视当时的决定仍是显得仓促和草率的,主持人和嘉宾也显得准备不足,但是他们的言论却并不僵硬。在第一天的直播中曹先生在评论中指出,美国轰炸代表中国主权象征的大使馆,不但违反了国际公约,也是人道主义的一次历史性倒退,要对事件进行全面谴责。曹景行的此番言论是当天大家期望听到的声音,是压力下的中国人需要的表达他们的想法和愤怒声音,曹景行不经意间成了大家的代言人。而在接下来的报道中,许多预见性的评论,为其后政治的走向与结果所印证,这种边看边评的方式也在第一时间给了观众信息和观点。连续一星期的直播,引起了相当大的反响。作为主持人的吴小莉回忆这个特殊节目时说道:“在‘中国人今天说不’特别节目推出之后我第一次感觉到做电视可以做到像热媒体一样,我当天在电视上说的话在当天的互联网上出现了,电话、传真就进来了。你

好程序员 2015最新Android应用开发基础教程

好程序员2015Android最新开发应用基础教程 适用人群:适用于零基础入学者 课程简介:本套课程结合最新Android新特性,结合最新技术特点所录制,此次课程我们主要讲解,Android基本UI及事件机制,Android四大组件的应用,Android中多线程的使用和Handler原理,Android中Fragment和ViewPager的使等,Android开发中常用知识点和功能讲解。 你会学到哪些? 掌握Android基本UI及事件机制 掌握Android四大组件的应用 掌握Android中多线程的使用和Handler原理 掌握Android中Fragment和ViewPager的使用 掌握菜单、通知、对话框的使用 掌握ListView、BaseAdapter的使用 掌握项目中通用的UI控件(滚动控件、网页控件、视频控件等) 掌握自定义控件和事件分发机制掌握实际项目开发流程和必备常识 1.Activity组件与Intent意图 1.1_activity_01 1.2_activity_02 1.3_activity_03 1.4_activity_04_task 1.5_activity_05

1.6_intent 2.网络操作与数据解析 1.7_AsyncTask01 3.UI(二) 1.8_Spinner_SimpleAdatper1 1.9_AutoCompleteTextView_ListView01 2.0_ListView02 2.1_BaseAdapter01 2.2_ListView04_News 2.3_ListView04_OnScrollListener 2.4_ListView05_ConvertView 2.5_ListView06_Person 2.6_ListView07_Item分类 2.7_ListView08_重构BaseAdapter 2.8_GridView 4.菜单、对话框、通知和Toast 2.9_Menu 3.0_Dialog01 3.1_Dialog02-03

Android进阶——Android事件分发机制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent

Android进阶——Android事件分发机制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 前言 Android事件分发机制可以说是我们Android工程师面试题中的必考题,弄懂它的原理是我们避不开的任务,所以长痛不如短痛,花点时间干掉他,废话不多说,开车啦 Android事件分发机制的简介 Android事件分发机制的发生在View与View之间或者ViewGroup与View之间具有镶嵌的视图上,而且视图上必须为点击可用。当一个点击事件产生后,它的传递过程遵循如下顺序:Activity->Window->View,即事件先传递给Activity,再到Window,再到顶级View,才开始我们的事件分发 Android事件分发机制的相关概念 Android事件分发机制主要由三个重要的方法共同完成的 dispatchTouchEvent:用于进行点击事件的分发 onInterceptTouchEvent:用于进行点击事件的拦截 onTouchEvent:用于处理点击事件 这里需要注意的是View中是没有onInterceptTouchEvent()方法的 Android事件分发机制的分发例子 这里以两个ViewGroup嵌套View来演示,下面是演示图 一、MyView 继承View并覆写其三个构造方法,覆写dispatchTouchEvent和onTouchEvent,前面已经说

了View是没有onInterceptTouchEvent方法的 public class MyView extends View { public MyView(Context context) { super(context); } public MyView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent event) { System.out.println("MyView dispatchTouchEvent"); return super.dispatchTouchEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { System.out.println("MyView onTouchEvent"); return super.onTouchEvent(event); } } 二、MyViewGroup01和MyViewGroup02 MyViewGroup01和MyViewGroup02是一样的代码,这里以01为例,继承ViewGroup并覆写其三个构造方法,覆写dispatchTouchEvent和onTouchEvent和onInterceptTouchEvent方法 public class MyViewGroup01 extends LinearLayout { public MyViewGroup01(Context context) { super(context); } public MyViewGroup01(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public MyViewGroup01(Context context, AttributeSet attrs) {

电视新闻评论节目话语比较分析

电视新闻评论节目话语比较分析 【摘要】电视新闻评论是我国电视最为重要的节目形态之一,电视新闻评论主体是电视新闻评论的主动者和实施者。电视节目的构成元素主要包括视觉元素和听觉元素,而电视节目的新闻话语是将视听元素相结合,从而分析现象,发表见解。不同的新闻评论节目由于自身各项条件的不同,在新闻话语方面也相应具有很大差异。本文通过对《关键洞察力》和《深度国际》两档国际新闻评论节目的比较分析,对其新闻话语运用的异同进行探讨。 【关键词】关键洞察力深度国际新闻话语题材视听元素 一、基本理论与方法 1、新闻话语 梵?迪克从话语分析的维度研究新闻话语。他认为作为 一种话语类型,新闻话语是对过去所发生的政治、社会和文化事件的报道。他还认为:“为了让受众注意、理解、再现、记住,最后接受乃至和他们原先的认知系统合为一体,新闻内容本身就要进一步的组织,如果新闻命题要被接受为是真实的或者可能的,那么就需要有其他的方式来增加他们的真实性或可能性。” 新闻话语作为一种话语类型,具有我们所定义的话语的

所有特征:首先,新闻话语无论在语义还是语用上都是非常连贯的;其次该种话语是一种交际形式,而这种交际形式是发生在报纸、广播、电视和受众之间的一种动态过程。 2、样本选择 (1)《关键洞察力》。2013年3月6日起,每周三21:20黄金档,全国首档以分析焦点新闻人物微表情为线索,深度解析国际时事的先锋新闻节目《关键洞察力》在深圳卫视开播。节目首度将微表情概念引入新闻栏目,以微表情切入,以人物关系串联新闻事件、探究新闻真相,让老百姓看懂时事新闻不再是难题。主持人为臧雅菲。 (2)《深度国际》。《深度国际》是央视中文国际频道推出的新闻纪实栏目。内容打造新闻纵深影响力,影响有影响力的人,紧跟时事,深度解析,时长45分钟。对国际新闻进行深度报道,对国际新闻事实做深层次剖析。凭借画面和声音,形象地对重大的国际新闻事件、对未来世界格局有影响的事件、涉及中国或与中国关联的国际事件,做有背景介绍、有分析解释、有归纳预测的报道,以此表达中国立场、中国声音。 基于此,本文选择了《关键洞察力》和《深度国际》两档电视国际新闻评论节目作为样本进行分析,探究两档节目在新闻话语方面的异同点。在资料收集和采信方面,本文搜寻了2014年8月15日――2014年12月15日《关键洞察力》

凤凰卫视主持人大全

凤凰卫视主持人大全 窦文涛,祖籍山东章丘,1967年8月21日生于河北省石家庄市。小学五年、初中三年、高中三年于石家庄毕业。1985年,考入武汉大学,就读于新闻系。 1989年大学本科毕业,南下供职于广东人民广播电台,从少儿、家庭类节目开始,主持过新闻、娱乐、服务等当时电台多种类型的节目,亲身经历了中国广播由录音播出到直播时代的转变,后来主要担任热线电话言论节目的直播主持人。另外,工作范围还包括采编、策划及节目监制等幕后方面。与此同时,还在当地电视台客串主持一些节目,并曾担任一家报纸(周刊)的编辑部主任。在电台期间,曾以新闻专题《你好,南极人》获首届“中国新闻奖”一等奖,还被选为全国广播电视“双十佳”节目主持人,获“金话筒奖”。 在广东电台供职七年,九六年初,离开广州赴香港工作,加入筹划中的凤凰卫视。刚开始主持的常态节目是娱乐资讯节目《相聚凤凰台》,后担任过新闻节目《时事直通车》的主播。从98年开始推出“聊天”节目《锵锵三人行》,周一——周五每天一集,主持人与两位嘉宾来自两岸三地,宛如三友小聚,个人本色,性情相见,所谓“民间话语,热点话题”,其实又岂止热点焦点,话题百无禁忌,海阔天空无所不谈,嬉笑怒骂,引人入胜。在谈话节目之林中独树一格,可谓笑傲江湖,在众多海内外观众心目中留下长期印象,而文涛也由此开始为大家所熟知。 2005年中国电视艺术家协会主持人专业委员会推选2004年度最佳电视主持人,窦文涛获“年度最佳电视谈话主持人”荣誉称号。同年,《新周刊》评选“15年来中国最有价值的电视节目主持人”,窦文涛排名第三,并在“2004年度中国电视排行榜”中,获选为“最佳谈话节目主持人”;获选理由为:“窦式脱口秀”开启了中国电视的“三人谈”模式,到今天依然是中国知道分子客厅中的功夫茶。他独创的这种电视话语(江湖话语),有效地令电视与生活中的知道分子们互换着谈资与学识,并使各种官方消息和民间话语找到了一个相得益彰的表达出口。在众声喧哗的中国电视界,他以清醒的入世精神和默契的谈话格调示范了主流之外的观点价值。” 2003年始又打造每周五播出的《文涛拍案》节目,再启电视节目新风,演说当代社会传奇。在这个“另类法制节目”中,文涛以迥然不同的形象出现,号称“大案、要案、奇案、公案--我拍案!”,性情毕现,有理有节,仗义直言,击浊扬清。节目中运用各种影视手段起承转合,丰富情境,强化感染力,被称为“新派电视评书体”。 文涛至今在凤凰已经九年,以往参与过的节目还有访谈节目《明星三人行》、栏目剧《老窦一家亲》《老窦酒吧》、综艺节目《两极大碰撞》等。期间重大的特别节目有《悼念邓小平特别报道》、《香港回归60小时直播》、《莫斯科中国申奥直播》、《中华小姐环球大赛》、伊拉克战争特别节目〈海湾风云录〉、2004奥运特别节目〈奥运连环阵〉等。 主持人语录 对我来说,凤凰是一所主持人的大学,课程是自学加实习。给你一个舞台,让你自由地扑腾。其实也残酷,因为只有舞台和你,要不就飞翔,要不就还是扑腾。

完全理解AndroidTouchEvent事件分发机制(二)分析解析

完全理解Android TouchEvent事件分发 机制(二) 可以看出来,事件一旦被某一层消费掉,其它层就不会再消费了 到这里其实对事件分发的机制就有个大概了解,知道里面的原理是怎么回事。 下面就让我们来去梳理一下这个事件分发所走的逻辑。 我们仔细思考一下,为什么有的事件有UP有的没有? 为什么Up和Down的顺序不同呢? 为什么要按照这个顺序执行呢? 这个例子主要是为了说明分发、拦截、消费的流程 以例一为例,在每个View 都不拦截down 事件的情况下,down 事件是这样传递的 super.dispatchTouchEvent方法,上面我们介绍过, 这个方法内部实际上是调用的onTouchEvent方法

所以最后的输出日志顺序就是从父到子依次调用分发和拦截,然后从子到父依次调用消费。 例二也是同理,区别在于 当Father拿到事件的时候,选择了拦截下来不再询问其他, 但是Father也没消费,直接又还回给了Grandpa, Grandpa同样也没有消费这个事件。 所以最终的顺序就是,从Grandpa到Father再返回Grandpa就结束了,没有经过LogImageView。 例三的情况就不太一样了 当Grandpa->Father->LogImageView 传递到LogImageView时,LogImageView不消费又返回给了Father,Father在onTouchEvent消费掉了事件。 然后反馈给Father说事件已经消费。,就等于parent.dispatchTouchEvent返回true给上一级的Grandpa, Grandpa不会再调用grandpa.onTouchEvent方法。 从这里我们可以总结出来: **dispatchTouchEvent返回值的作用是用于标志这个事件是否“消费了”, 无论是自己或者下面的子一级用掉了都算是消费掉。** 再如这个例子中,如果我们让LogImageView消费掉事件, 那么Father收到LogImageView的消息后,也会调用parent.dispatchTouchEvent返回true给Grandpa, 所以这个方法返回值的true是只要用掉就行,无论自己还是下面某一级, 而非我把事件传递下去就是true了,下面没人消费最终其实还是返回false的。 至此,我们来总结一下这三个方法的大致作用: dispatchTouchEvent方法内容里处理的是分发过程。可以理解为从Grandpa->Father->LogImageView一层层分发的动作 dispatchTouchEvent的返回值则代表是否将事件分发出去用掉了,自己用或者给某一层子级用都算分发成功。比如Father消费了事件,或者他发出去给的LogImageView消费了事件,

新闻评论节目

针对杭州飙车案的新闻评论 节目类型:新闻评论 节目名称:《小静说新闻》 时长:10—15分钟 主持人特点:小静主持节目语言犀利、观察敏锐、期待和观众一起,了解陌生,认识彼此端详相似,审视自我。 嘉宾特点:某知名大学王教授评论分析透彻、敢于批判现实、有较强的人文关怀素养和社会责任意识。 事件介绍: 杭州飙车案:中国大陆媒体称为杭州飙车案或杭州富家子飙车撞人案,同时也被中国大陆网民称为欺实马事件(音同70码,取欺负老实人之意)。是指发生于2009年5月7日晚八时许,谭卓在浙江省杭州市文二西路被胡斌所驾驶的改装三菱Lancer Evolution IX跑车撞飞,后送医院后不治而亡。有目击者声称,谭卓被撞出大约5米高后再重重摔在20米以外的地方,可能是当场死亡。同日,肇事者胡斌被刑事拘留,但有网友发现肇事者QQ 还在进行更新,因此质疑肇事者是否被及时拘捕。7月20日下午3时30分,杭州市西湖区人民法院对“5?7”交通肇事案进行了一审公开宣判,以交通肇事罪判处被告人胡斌有期徒刑三年。被告人胡斌亲属,被害人谭卓亲属、生前同事等各界群众60余人旁听了宣判。 逝者:谭卓(1984年9月26日-2009年5月7日),湖南省长沙市宁乡县人,为家中的独子。2002年,谭卓以优异成绩考取浙江大学通信工程专业。2006年,谭卓毕业后就职于杭州依赛通信有限公司,担任硬件工程师。 肇事者:胡斌,20岁,杭州师范大学体育系大二学生,并曾获得首届杭州卡丁车大赛冠军。通过媒体调查以及网民的人肉搜索,民众发现肇事者系杭州本地富商之子,且有数次超速违例的前科。 对话评论: 主持人:观众朋友们,您们好!欢迎大家收看我们这期的《小静说新闻》。王教授,针对这个杭州飙车案,您有什么看法?

电视节目评论——《东方时空》节目分析

东方时空 引领纪实的美学风潮,开创新的电视文体 栏目日复一日的播出量要求节目操作的可重复性,要求节目流水性的操作,叙事方面要求共性的存在,必须具备无限可挖掘的选题空间.凡此种种决定了节目在制作方面无非是主题先行,编导往往先结构好节目框架,然后用摄像机采录被关注对象的一些相关素材,回来后填充,甚至先写好解说词,然后“缘木求鱼”进行音配画,制成呆板的专题节目。这类节目的电视语言充满了强烈的意念先行色彩和教化意味,解说词播报的腔调近乎美文的朗诵,虽然激情饱满,却做作十足,此种叙述方式造成了与观众远远隔离的欣赏情境,造成了观众的接受组碍。 《东方时空》在国内刮起了一次电视纪实风潮。《东方时空》的子栏目《东方之子》、《生活空间》、《时空报道》(《焦点时刻》)还促进了中国电视栏目叙事文体的发展。虽然在此以前,有些地方电视台的某些栏目在电视语言的革新方面具有先锋意味,但当时的地方电视尚未上星,影响微弱。由于中央电视台无可替代的媒体霸主的地位,《东方时空》的创新举措无疑会给中国电视界带来不可替代的影响。 《东方时空》作为电视新闻杂志在中国拓展了电视新闻的意义,使电视新闻不仅仅局限在《新闻联播》和

整点新闻的各种消息类新闻,更有了无论在容量和内涵上都更为深广的人物访谈和新闻事件的深度报道,让新闻人物和新闻事件故事化,接近生活,贴近观众。 另一方面,《东方时空》也让电视语言的纪实风格在中国电视业中风行大江南北。在《东方时空》成型后的几个主板块中,《面对面》是主持人在演播室对一件新闻事件或现象的评论,而其他的几个板块都是摒弃了意念先行的专题片制作模式,在节目中让纪实风格的电视语言尽显人物和事件原生态的本真魅力。 《东方之子》作为一个典型的访谈节目,在国内也是开风气之先。节目的主体形式是记者与某知名人士或成功人士的采访交流,通过记者与他面对面的对话,让成功人士表述自己对某个事件或某个领域的独到见解,回忆自己的人生历程,激发出采访对象厚重的人生感悟,挖掘出精彩闪光的思想点,由此浓缩“人生精华”。记者在这里已不是一般意义的单向的采访者,而是积极地参与对话,成为与被采访对象的平等对话者。 通过《东方之子》,人们读解到了一批科学家、艺术家、运动健儿、教练,乃至省长书记们的内心世界。在这个子栏目里,人们得到的是双方对话的原生态信息,解说词已经退到了次到地位,仅仅是为了被访对象的背景进行一些补充或作一些简明扼要的扣题发挥,升华对话内涵,对话之间插有的这些配有解说词的照片资料或

浅谈凤凰卫视的电视访谈节目、

浅谈凤凰卫视的电视访谈节目 摘要:凤凰卫视的异军突起是大家有目共睹的,尤其是其中的访谈类节目更是观众讨论的热门话题。本文分别从节目的明星效应、另类的观察和议题设置、独特的话语空间三方面介绍了凤凰不可复制的特点。 关键词:凤凰卫视;电视访谈节目;不可复制 正文: 十年前,凤凰展翅,一飞冲天。十年磨一剑,“凤凰”以她的大度、包容、出类拔萃、永不言败的精神赢得了世人。透过凤凰美丽的眼睛,人们希望能捕捉她的灵感,探寻她的奥秘。但这种创新的思维却永远无法模仿。凤凰卫视的走红自有它独特的魅力和特质的原因,从老板刘长乐到节目员工都是让人诉说不完而又津津乐道的话题。凤凰卫视的魅力来自凤凰的每一个人,来自凤凰人为观众献上的每一道菜中。细品之下,不难发现,凤凰的访谈类节目是备受观众喜爱的“菜”之一。从《名人面对面》、《鲁豫有约》到《一虎一席谈》、《文化大观园》等在观众中都是有口皆碑的。低成本、高品质的访谈节目让凤凰卫视异军突起。 上海地铁一号线是由德国人设计的,看上去并没有什么特别的地方,直到中国设计师设计的二号线投入运营,才发现其中有那么多的细节被二号线忽略了。结果二号线运营成本远远高于一号线,据说至今尚未实现收支平衡。专家事后总结说,细节是不可复制的。 对于凤凰来说,其不可复制的地方在于凤凰卫视的一些“偏门”做法。 早期,凤凰卫视处理新闻方式的内地化曾遭到观众批评,甚至认为他们是中央电视台的海外版。刘长乐因此坚决要求节目以及相关时事类节目要“脱大陆化”,不能用内地的新闻标准处理新闻。“港味”成为重要的衡量标准。陌生感被中文台台长王纪言定义在了许多细节上。 而尤其不可模仿的是凤凰的节目特色,其特色已经与主持人的个性浑然一体。而老板刘长乐不拘一格用人才甚至用“怪才”的极端做法让凤凰节目的个性化几乎达到无以复加的境地。那么凤凰台的访谈节目到底有什么样的特点呢? 一、明星效应。 1.节目主持人的明星化。 "明星"一词最早源于我国古代的传说中。据说华山仙女的名字。《太平广记》中就有仙女明星"居华山,服玉浆,白日升天"之说,后来,明星也用来专指金星。因为金星是较亮的星星之一,所以人们就以"明星"来比喻成绩卓绝、才华出众的人。 ⑴随着时间的演化,明星被用来称呼那些各个领域走红的成名人物。从这个意思上说,这些访谈节目主持人个个都是耀眼的“明星”,可是他(她)们又不是一般的明星。 杨澜和陈鲁豫不仅仅是美女主播,更是才女主播。年纪轻轻就取得了让人瞩目

面试必备之Android常见原理性面试专题

Android常见原理性面试专题 1.Handler机制和底层实现 2.Handler、Thread和HandlerThread的差别 1)Handler线程的消息通讯的桥梁,主要用来发送消息及处理消息。 2)Thread普通线程,如果需要有自己的消息队列,需要调用Looper.prepare()创建Looper 实例,调用loop()去循环消息。 3)HandlerThread是一个带有Looper的线程,在HandleThread的run()方法中调用了Looper.prepare()创建了Looper实例,并调用Looper.loop()开启了Loop循环,循环从消息队列中获取消息并交由Handler处理。利用该线程的Looper创建Handler实例,此Handler 的handleMessage()方法是运行在子线程中的。即Handler利用哪个线程的Looper创建的实例,它就和相应的线程绑定到一起,处理该线程上的消息,它的handleMessage()方法就是在那个线程中运行的,无参构造默认是主线程。HandlerThread提供了quit()/quitSafely()方法退出HandlerThread的消息循环,它们分别调用Looper的quit和quitSafely方法,quit会将消息队列中的所有消息移除,而quitSafely会将消息队列所有延迟消息移除,非延迟消息派发出去让Handler去处理。 HandlerThread适合处理本地IO读写操作(读写数据库或文件),因为本地IO操作耗时不长,对于单线程+异步队列不会产生较大阻塞,而网络操作相对比较耗时,容易阻塞后面的请求,因此HandlerThread不适合加入网络操作。 --handler发消息给子线程,looper怎么启动? --关于Handler,在任何地方new Handler 都是什么线程下? --ThreadLocal原理,实现及如何保证Local属性? --请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系--请描述一下View事件传递分发机制

相关文档
最新文档