欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

淘宝自定义内容范文

时间:2022-07-29 08:00:44 其他范文 收藏本文 下载本文

下面是小编为大家整理的淘宝自定义内容范文,本文共19篇,欢迎阅读与收藏。

淘宝自定义内容范文

篇1:淘宝美工日常工作内容

1、负责淘宝店铺、网站的美工设计,图片处理,要求对户外用品有一定敏感度,能用简介文案表达产品的卖点;

2、熟悉网页焦点理论,对网页布局有丰富经验;对色彩敏感,能处理各种视觉冲突,有良好的审美观;

3、负责每款商品的设计和美化,包括拍照及图片修改和制作、动画、动态广告条等的设计,商品展示模板设计,日常产品维护、调整、美化;

4、能独立完成淘宝店铺的主页美化,制作促销、描述模板,根据公司产品的上架情况和促销信息自主制作促销广告位,对拍摄后的产品图进行校色、美化处理;

5、站在用户角度去思考,提高网站的可用性,优化设计;能够挖掘消费者的浏览习惯和点击需求;

6、负责上级交办的其他设计工作;

延伸阅读:

淘宝美工福利:十种创意方法让你的转化率爆棚!

美工是影响宝贝转化率的一个重要因素,一个有创意的美工,工作起来事半功倍,特此总结了十种关于创意的方法,希望对你有所帮助,

一丶直接展示法

这是一种最常见的运用十分广泛的表现手法。它将某产品或主题直接如实地展示在广告版面上,充分运用摄影或绘画等技巧的写实表现能力。细臻刻划和着力渲染产品的质感丶形态和功能用途,将产品精美的质地引人入胜地呈现出来,给人以逼真现实感,使消费者对所宣传的产品产生一种亲切感和信任感。

这种手法由于直接将产品推向消费者面前,所以要十分注意画面上产品的组合和展示角度,应着力突出产品的品牌和产品本身最容易打动人心的部位,运用色光和背景进行烘托,使产品置身于一个具有感染力的空间,这样才能增强广告画面的视觉冲击力。

二丶突出特征法

运用各种方式抓住和强调产品或主题本身与众不同的特征,并把它鲜明地表现出来,将这些特征置于广告画面的主要视觉部位或加以烘托处理,使观众在接触言辞画面的瞬间即很快感受到,对其产生注意和发生视觉兴趣,达到刺激购买欲望的促销目的。

在广告表现中,这些应着力加以突出和渲染的特征,一般由富于个性产品形象与众不同的特殊能力,厂商的企业标志和产品的商标等要素来决定。突出特征的手法也是我们常见的运用得十分普遍的表现手法,是突出广告主题的重要手法之一,有着不可忽略的表现价值。

三丶对比衬托法

对比是一种趋向于对立冲突的艺术美中最突出的表现手法。它把作品中所描绘的事物的性质和特点放在鲜明的对照和直接对比中来表现,借彼显此,互比互衬,从对比所呈现的差别中,达到集中丶简洁丶曲折变化的表现。

通过这种手法更鲜明地强调或提示产品的性能和特 点,给消费者以深刻的视觉感受。作为一种常见的行之有效的表现手法,可以说,一切艺术都受惠于对比表现手法。

四丶合理夸张法

借助想象,对广告作品中所宣传的对象的品质或特性的某个方面进行相当明显的过份夸大,以加深或扩大这些特征的认识,

文学家高尔基指出:“夸张是创作的基本原则”。通过这种手法能更鲜明地强调或揭示事物的实质,加强作品的艺术效果。

按其表现的特征,夸张可以分为形态夸张和神情夸张两种类型,前者为表象性的处理品,后者则为含蓄性的情态处理品。通过夸张手 法的运用,为广告的艺术美注入了浓郁的感情色彩,使产品的特征性鲜明丶突出丶动人。

五丶以小见大法

在广告设计中对立体形象进行强调丶取舍丶浓缩,以独到 的.想象抓住一点或一个局部加以集中描写或延伸放大,以更充分地表达主题思想。这种表现手法,给设计者带来了很大的灵活性和无限的表现力,同时为接受者提供了广阔的想象空间,获得生动的情趣和丰富的联想。

以小见大中的“小”,是广告画面描写的焦点和视觉兴趣中心,它既是广告创意的浓缩和生发,也是设计者匠心独具的安排,因面它已不是一般意义的“小”,而是小中寓大,以小胜大的高度提炼的产物,是简洁的刻意追求。

六丶运用联想法

合乎审美规律的心理现象。在审美的过程中通过丰富的联想,能突破时空的界限,扩大艺术形象的容量,加深画面的意境。通过联想,人们在审美对象上看到自己或 与自己有关的经验,美感往往显得特别强烈,从而使审美对象与审美者融合为一体,在产生联想过程中引发了美感共鸣,其感情的强度总是激烈的丶丰富的。

七丶富于幽默法

幽默法抓住生活现象中局部性的东西,通过人们的性恪丶外貌和举的某些可笑的特征表现出来。 幽默的表现手法,往往运用饶有风趣的情节,巧妙的安排,把某种需要肯定的事物,无限延伸到漫画的程度,造成一种充满情趣,引人发笑而又耐人寻味的幽默意境。

幽默的矛盾冲突可以达到出乎意料之外,又在情理之中的艺术效果,勾引起观赏者会心的微笑,以别具一格的方式,发挥艺术感染力的作用。

八丶借用比喻法

比喻法是指在设计过程中选择两个在本拷贝 各不相同,而在某些方面又有些相似性的事物,“以此物喻彼物”,比喻的事物与主题没有直接的关系,但是某一点上与主题的某些特征有相似之处,因而可以借题 发挥,进行延伸转化,获得“婉转曲达”的艺术效果。

九丶以情托物法

艺术的感染力最有直接作用的是感情因素,审美就是主体与美的对象不断交流感情产生共鸣的过程。

以美好的感情来烘托主题,真实而生动地反映这种审美感情就能获得以情动人,发挥艺术感染人的力量,这是现代广告设计的文学侧重和美的意境与情趣的追求。

十丶悬念安排法

在表现手法上故弄玄虚,布下疑阵,使人对广告画面乍看不解题意,造成一种猜疑和紧张的心理状态,在观众的心理上掀起层层波澜,产生夸张的效果,驱动消费者的好奇心和强烈举动,开启积极的思维联想,引起观众进一步探明广告题意之所在强烈愿望,然后通过广告标题或正文把广告的主题点明出来,使悬念得以解除, 给人留下难忘的心理感受。

悬念手法有相当高的艺术价值,它首先能加深矛盾冲突,吸引观众的兴趣和注意力,造成一种强烈的感受,产生引人入胜的艺术效果。

篇2:淘宝美工主要工作内容

1、负责淘宝店铺、网站的美工设计,图片处理,要求对户外用品有一定敏感度,能用简介文案表达产品的卖点;

2、熟悉网页焦点理论,对网页布局有丰富经验;对色彩敏感,能处理各种视觉冲突,有良好的审美观;

3、负责每款商品的设计和美化,包括拍照及图片修改和制作、动画、动态广告条等的设计,商品展示模板设计,日常产品维护、调整、美化;

4、能独立完成淘宝店铺的主页美化,制作促销、描述模板,根据公司产品的上架情况和促销信息自主制作促销广告位,对拍摄后的产品图进行校色、美化处理;

5、站在用户角度去思考,提高网站的可用性,优化设计;能够挖掘消费者的浏览习惯和点击需求;

6、负责上级交办的其他设计工作;

延伸阅读:

淘宝美工前途在哪里?

提起“淘宝”,大家都不陌生,现在的年轻人都会上淘宝买东西。很多人也转行做起了淘宝卖家,所以就产生了学习淘宝美工的念头。那么,学习淘宝美工好就业吗?薪资待遇如何呢?这肯是大家最关心的问题。今天尧尧电商培训学院小编就为大家解读一下淘宝美工的就业问题。

随着电子商务的迅速发展,淘宝美工这个岗位应运而生。在早期,并没有专业的淘宝美工,在淘宝店铺做美工的基本都是懂一点PS软件,会处理图片的人员。近年来,淘宝行业已成熟,随着网购的逐渐火爆,很多商城和店铺都需要专业的淘宝美工人员。所以说,淘宝美工这一职位市场的需求量是非常大的,就业不成问题。除了应聘到淘宝店铺去工作,学习淘宝美工之后,还可以自己在淘宝开店。

据统计,有2年网店美工经验的人员,底薪通常在3000-6000之间,部分掌柜还包吃住。一般大城市美工分为初级、中级和高级。初级美工,月薪在3000-5000元,半年美工经验;中级美工,月薪在4000-6000元,一年以上美工经验;高级美工,月薪在5000-8000元,三年以上美工经验。

电子商务是一个朝阳产业,它的发展速度已经超出了人们的想象。所以说,在这样一个行业中工作绝对是前途无量的。哈尔滨尧尧电子商务有限公司特别开设了淘宝美工培训以及视觉营销系统课程,想要涉足这一广阔领域的朋友们,赶快参与进来吧!

篇3:淘宝美工日常工作内容

淘宝美工日常工作内容

1、负责淘宝店铺、网站的美工设计,图片处理,要求对户外用品有一定敏感度,能用简介文案表达产品的卖点;

2、熟悉网页焦点理论,对网页布局有丰富经验;对色彩敏感,能处理各种视觉冲突,有良好的审美观;

3、负责每款商品的设计和美化,包括拍照及图片修改和制作、动画、动态广告条等的设计,商品展示模板设计,日常产品维护、调整、美化;

4、能独立完成淘宝店铺的主页美化,制作促销、描述模板,根据公司产品的上架情况和促销信息自主制作促销广告位,对拍摄后的产品图进行校色、美化处理;

5、站在用户角度去思考,提高网站的可用性,优化设计;能够挖掘消费者的浏览习惯和点击需求;

6、负责上级交办的其他设计工作;

延伸阅读:

淘宝美工福利:十种创意方法让你的转化率爆棚!

美工是影响宝贝转化率的一个重要因素,一个有创意的美工,工作起来事半功倍,特此总结了十种关于创意的方法,希望对你有所帮助。

一丶直接展示法

这是一种最常见的运用十分广泛的表现手法。它将某产品或主题直接如实地展示在广告版面上,充分运用摄影或绘画等技巧的写实表现能力。细臻刻划和着力渲染产品的质感丶形态和功能用途,将产品精美的质地引人入胜地呈现出来,给人以逼真现实感,使消费者对所宣传的产品产生一种亲切感和信任感。

这种手法由于直接将产品推向消费者面前,所以要十分注意画面上产品的组合和展示角度,应着力突出产品的品牌和产品本身最容易打动人心的部位,运用色光和背景进行烘托,使产品置身于一个具有感染力的空间,这样才能增强广告画面的视觉冲击力。

二丶突出特征法

运用各种方式抓住和强调产品或主题本身与众不同的特征,并把它鲜明地表现出来,将这些特征置于广告画面的主要视觉部位或加以烘托处理,使观众在接触言辞画面的瞬间即很快感受到,对其产生注意和发生视觉兴趣,达到刺激购买欲望的促销目的。

在广告表现中,这些应着力加以突出和渲染的特征,一般由富于个性产品形象与众不同的特殊能力,厂商的企业标志和产品的商标等要素来决定。突出特征的手法也是我们常见的运用得十分普遍的表现手法,是突出广告主题的重要手法之一,有着不可忽略的表现价值。

三丶对比衬托法

对比是一种趋向于对立冲突的艺术美中最突出的表现手法。它把作品中所描绘的事物的性质和特点放在鲜明的对照和直接对比中来表现,借彼显此,互比互衬,从对比所呈现的差别中,达到集中丶简洁丶曲折变化的表现。

通过这种手法更鲜明地强调或提示产品的性能和特 点,给消费者以深刻的视觉感受。作为一种常见的行之有效的表现手法,可以说,一切艺术都受惠于对比表现手法。

四丶合理夸张法

借助想象,对广告作品中所宣传的对象的品质或特性的某个方面进行相当明显的过份夸大,以加深或扩大这些特征的认识。文学家高尔基指出:“夸张是创作的基本原则”。通过这种手法能更鲜明地强调或揭示事物的实质,加强作品的艺术效果。

按其表现的特征,夸张可以分为形态夸张和神情夸张两种类型,前者为表象性的处理品,后者则为含蓄性的情态处理品。通过夸张手 法的运用,为广告的艺术美注入了浓郁的感情色彩,使产品的特征性鲜明丶突出丶动人。

五丶以小见大法

在广告设计中对立体形象进行强调丶取舍丶浓缩,以独到 的想象抓住一点或一个局部加以集中描写或延伸放大,以更充分地表达主题思想。这种表现手法,给设计者带来了很大的灵活性和无限的表现力,同时为接受者提供了广阔的想象空间,获得生动的情趣和丰富的联想。

以小见大中的“小”,是广告画面描写的焦点和视觉兴趣中心,它既是广告创意的浓缩和生发,也是设计者匠心独具的安排,因面它已不是一般意义的“小”,而是小中寓大,以小胜大的高度提炼的产物,是简洁的刻意追求。

六丶运用联想法

合乎审美规律的心理现象。在审美的过程中通过丰富的联想,能突破时空的界限,扩大艺术形象的容量,加深画面的意境。通过联想,人们在审美对象上看到自己或 与自己有关的经验,美感往往显得特别强烈,从而使审美对象与审美者融合为一体,在产生联想过程中引发了美感共鸣,其感情的强度总是激烈的丶丰富的。

七丶富于幽默法

幽默法抓住生活现象中局部性的东西,通过人们的性恪丶外貌和举的某些可笑的特征表现出来。 幽默的表现手法,往往运用饶有风趣的情节,巧妙的安排,把某种需要肯定的事物,无限延伸到漫画的程度,造成一种充满情趣,引人发笑而又耐人寻味的幽默意境。

幽默的矛盾冲突可以达到出乎意料之外,又在情理之中的艺术效果,勾引起观赏者会心的微笑,以别具一格的方式,发挥艺术感染力的作用。

八丶借用比喻法

比喻法是指在设计过程中选择两个在本拷贝 各不相同,而在某些方面又有些相似性的事物,“以此物喻彼物”,比喻的事物与主题没有直接的关系,但是某一点上与主题的某些特征有相似之处,因而可以借题 发挥,进行延伸转化,获得“婉转曲达”的艺术效果。

九丶以情托物法

艺术的感染力最有直接作用的是感情因素,审美就是主体与美的对象不断交流感情产生共鸣的过程。

以美好的感情来烘托主题,真实而生动地反映这种审美感情就能获得以情动人,发挥艺术感染人的力量,这是现代广告设计的文学侧重和美的意境与情趣的追求。

十丶悬念安排法

在表现手法上故弄玄虚,布下疑阵,使人对广告画面乍看不解题意,造成一种猜疑和紧张的心理状态,在观众的心理上掀起层层波澜,产生夸张的效果,驱动消费者的好奇心和强烈举动,开启积极的思维联想,引起观众进一步探明广告题意之所在强烈愿望,然后通过广告标题或正文把广告的主题点明出来,使悬念得以解除, 给人留下难忘的心理感受。

悬念手法有相当高的艺术价值,它首先能加深矛盾冲突,吸引观众的兴趣和注意力,造成一种强烈的感受,产生引人入胜的艺术效果。

篇4:淘宝美工工作内容

1、负责淘宝店铺、网站的美工设计,图片处理,要求对户外用品有一定敏感度,能用简介文案表达产品的卖点;

2、熟悉网页焦点理论,对网页布局有丰富经验;对色彩敏感,能处理各种视觉冲突,有良好的审美观;

3、负责每款商品的设计和美化,包括拍照及图片修改和制作、动画、动态广告条等的设计,商品展示模板设计,日常产品维护、调整、美化;

4、能独立完成淘宝店铺的主页美化,制作促销、描述模板,根据公司产品的上架情况和促销信息自主制作促销广告位,对拍摄后的产品图进行校色、美化处理;

5、站在用户角度去思考,提高网站的可用性,优化设计;能够挖掘消费者的浏览习惯和点击需求;

6、负责上级交办的其他设计工作;

延伸阅读:

淘宝美工要具备什么

1、淘宝美工的工作内容:网站页面设计、美化、网店促销海报制做、把物品照片制作成宝贝描述中需要的图片、设计电子宣传单等。设计师的创意过程也不是您想的那么简单。我们不以专业自居,但是我们热爱这个行业,也自己尊重自己的劳动和付出。我们不会花时间去给您分析我们的苦衷,因为我们深深理解您只是希望那个看到满意的结果。

2、淘宝美工需掌握的软件:以下是河源招聘网通过统计在该网站发布的任意20条关于美工岗位的招聘信息后得出的结果:Photoshop,Dreamweaver,Flash,Illustrator,各类网页设计语言,Firework,Coreldraw,3DMAX;另外,还需要网络美工具备如下素质:扎实的美术功底、丰富的想象力和良好的创造力,网页设计/平面设计/广告设计工作经验,美术类/平面设计/广告及相关专业,较好的文字功底。可见,不仅要求会相关的绘图软件,还要求懂一定的网页设计语言和有一定的文字功底。

3、还需要网络美工具备如下素质:扎实的美术功底、丰富的想象力和良好的创造力,网页设计/平面设计/广告设计工作经验,美术类/平面设计/广告及相关专业,较好的文字功底。

篇5:dedecms实现图集内容自定义分页 .

dedecms中有图集的功能, 对于图集的显示,可定义“单页”、“分多页显示”、“多行多列显示”,其中分多页系统默认是每个页面显示一张图片,但是在实际使用中,我们有可能需要一个页面显示多张图片,下面就是实现方法,

第一步:修改include/inc_channel_unit.php文件

找到函数function GetImgLinks

找到和下面代码类似的部分,修改代码为:

//遍历图片信息

$mrow=0;

$mcol=0;

$photoid=0;

$images=array();

$i=0;

foreach($dtp->CTagsas$ctag){

if($ctag->GetName()==“img”){

$iw=$ctag->GetAtt('width');

$ih=$ctag->GetAtt('heigth');

$alt=str_replace(“'”,“”,$ctag->GetAtt('text'));

$src=trim($ctag->GetInnerText());

if($iw>$maxwidth)$iw=$maxwidth;

$iw=(empty($iw)?“”:“width='$iw'”);

//全部列出式或分页式图集

if($pagestyle<3){

if($revalue==“”){

$revalue=“

$alt

”;

}else{

//分页显示

if($pagestyle==2) {

if(($i%$GLOBALS['cfg_img_pagesize'])==0)

$revalue.=“

$alt

”;

else$revalue.=“

$alt

”;

}

//单页显示

if($pagestyle==1)$revalue.=“

$alt

”;

}

$i++;

//多列式图集

}elseif($pagestyle==3){

$images[$photoid][0]=$src;

$images[$photoid][1]=$alt;

$photoid++;

}

}

}

其中的关键部分为($i % $GLOBALS['cfg_img_pagesize'])==0,意思是当计数用的变量i和全局变量cfg_img_pagesize相除,余数为0的时候,产生分页,

第二步:定义分页尺寸的全局变量,当然你也可以直接用数字替换上文的$GLOBALS['cfg_img_pagesize'],达到分页的目的。

修改include/config_hand.php,添加变量:

//图片集分页大小设置

$cfg_img_pagesize = '5';

变量的值根据需要自定义。

好了,通过上面的修改就可以实现本文开始说的目标。具体道理自己想吧,不解释了。

篇6:淘宝售前客服工作内容

1.打开电脑,登入阿里旺旺以及其他工作所需要的聊天工具,还有邮箱。打开淘宝后台,需查看一下内容:后台页面左上角有没有站内信;绑定邮箱是否有信件;查看支付宝专区买入与卖出的交易记录,是否有买家未付款或者未发货的等记录,若出现还未解决的应该及时解决;查看昨天的交易记录的评价情况,对特殊情况作出紧急处理,比如说得到了差评,就应该及时查处问题,解决问题。

2.做好客户询价疑问工作,引导客户购买我们的产品

熟悉产品信息。主动向客户讲解产品的尺码颜色款式质量注意事项是否有货价格等,主动与陌生人交流,大胆热情,不要怕被别人拒绝。

3.推销我们的店铺产品,让更多顾客知道我们,扩大影响力。包括各大门户网站,淘宝的淘江湖等回帖发表帖子

在了解淘宝的流程和特点的基础上,能根据实际情况提出适当的营销方案,提供浏览量和成交率,提高网店和品牌知名度。

4.网上交易流程要熟悉,操作速度快。比如安排产品的上架、编辑产品描述及商品的说明、处理订单、修改价格、安排发货、打印发货单及快递单等等。上传和修改商品图片及详情。

5.买家付款后,务必跟买确认一下地址及联络方式。而且可以问问买家快递是否能够到达的。确认清楚后,明确告知买家,我们配好货后发件会是什么时间。并请买家放心,会提供单号及递送公司给他们的。

6. 若有退款和退换货等问题需要跟客户沟通,了解退换货的原因,并耐心处理。

7.有时候客户拍下商品,但是并不一定是着急要的,这个时候在线客服可以及时跟进,通过向买家询问汇款方式等督促买家及时付款

8.查阅交接班记录本,看看是否有顾客前天有意向,但还没达成交易的,应该及时跟进,咨询下买家,这个时候往往能收到意想不到的效果。

9.回访两个月之前的老客户,并把回访结果填写到老客户回访表中。

篇7:关于淘宝客服职责淘宝客服工作内容

1.负责千牛 旺旺回复顾客售前,售后咨询

2.售前引导咨询客户下单,推荐合适产品促成交易。

3.售后及时处理客户问题和投诉

4.根据店铺运营需求,完成日常客户关系维护,新产品推广等工作。

篇8:关于淘宝客服职责淘宝客服工作内容

1、熟练掌握产品使用方法和护肤知识,做到准确推荐,满足顾客护肤需求。

2、负责与顾客建立良好沟通,耐心细致解决客户售前、售中、售后等问题,提升品牌在顾客心中的满意度。

3、熟练操作店铺后台、订单处理、跟进等工作;

4、实现月度、年度个人在销售额、转化率、客单价、好评率、响应时间等多方面的绩效;

篇9:关于淘宝客服职责淘宝客服工作内容

1、 负责接待客户售前,售中和售后的咨询,解答客户疑问;

2、为客户及时处理售前,售中和售后的业务;

3 、使用淘宝系统

4 、大型活动的配合

篇10:关于淘宝客服职责淘宝客服工作内容

1、利用旺旺工具与客户沟通,及时回答各类售前售中咨询,促成愉快交易

2、售后问题处理,负面评价维护回访

3、新商品的录入及上架工作

4、负责店铺后台的日常相关工作

5、完成店长交办的相关工作

篇11:关于淘宝客服职责淘宝客服工作内容

1,通过在线(千牛、微信等)与客户进行沟通,深入了解客户需求,提供咨询相关服务;

2,解答客户疑问,提供专业化服务,提高客户满意度,维护公司品牌形象;

3,不断提升专业技能,完成任务目标以及领导安排的任务。

4,调动客户的购买兴趣,并辅助完成完整的交易

5,老顾客维护,做好客户关系管理。

篇12:关于淘宝客服职责淘宝客服工作内容

1,、负责天猫、京东等销售客服,解答客户对产品的购买疑问,引导顾客下单,。

2、熟悉天猫、京东等操作流程和平台规则。

3、熟悉极限词和广告法,规避接待过程中可能遇到的问题。

4、负责店铺销售商品的日常上、下架维护。

5、负责店铺售前、售中、售后可能遇到的问题。

6、负责店铺未付款订单的催付。

7、公司交代的其它事宜。

篇13:WordPress高级自定义布局的内容编辑器

WordPress的编辑器TinyMCE是一个非常强大的工具,对于网页设计师来说,使用WordPress的编辑器TinyMCE是没什么困难 的,但是对于那些不怎么了解HTML的人来说却用起来不是那么的得心应手;如果我们把内容编辑器做到所见即所得,预先把内容编辑器的排版布局都做出来,而 我们用户只要在相对应的区域直接输入内容就行了,那上面所说的问题就可以很轻易的解决,而且同样也可以提高我们编辑内容的效率。

今天就为大家介绍下Wordpress高级自定义布局的内容编辑器模板的制作技巧,要做到所见即所得,那么我们得在内容编辑器内自定义添加预设内容和排版布局,再结合我们样式表就可以轻易的实现这个功能。

创建自定义布局

排版布局分为两部分,一个是HTML的排版布局,另一个是CSS的样式表界面。

HTML排版布局

觉唯前端 www.jiawin.com

这里是侧边栏内容区域

觉唯前端 www.jiawin.com

'; return $content; } ?>

WordPress的这个default_content过滤器只能作用在新创建的文章或者页面里面,之前已经发布出来的文章或者页面都不会起作用。所以不用担心会影响到发布的文章。

CSS样式设计

接下来我们为这个结构布局引入一个样式表:

我们需要另外建一个样式表文件,命名为:editor-style.css,里面的示例代码如下:

body { background: #f5f5f5; } .content-col-main { float:left; width:66%; padding:1%; border: 1px dotted #ccc; background: #fff; } .content-col-side { float:right; width:29%; padding:1%; border: 1px dotted #ccc; background: #fff; } img { /* Makes sure your images stay within their columns */ max-width: 100%; width: auto; height: auto; }

这里需要注意的是样式表文件的路径,按照这个例子是放在主题的目录下面的,即和style.css同个文件夹。

现在我们切换到我们的后台,点击新建一篇文章(或者页面)内容编辑器区域就会自动添加刚刚我们创建的HTML结构了:

这个就是一个简单的布局,你可以根据你的网站,编辑default_content和styles.css里面的内容以及布局结构,

下面是根据我(觉唯前端)自己的网站,做个示例给大家看看:

通过这里,我们就可以简单的为我们的内容编辑器自动添加一些简单的布局结构,这将为我们的以后的内容编辑的时候带来很多的方便。

自定义不同文章类型的布局模版

上面的代码就是制作一个高级自定义布局内容编辑器模版的一个最基本的思路,但还是有一些局限性的,例如我需要我的post文章和page页面分别自 动添加不同的HTML代码,,那该怎么延伸解决呢?其实我们可以在custom_editor_content函数上面加上if条件语 句,Wordpress的if条件语句无疑是一个实用性很强的语句,我们要懂的善用。先来看看下面的代码:

post_type == 'page') { $content = ' // 定义page页面模版 '; } elseif ( $current_screen->post_type == 'POSTTYPE') { $content = ' // 定义post文章模版 '; } else { $content = ' // 定义除了page、post以外的模版 '; } return $content; } ?>

上面的代码就实现了在不同的文章类型内容编辑器里面自动添加不同的HTML代码,讲到这里,也行你也会想到,那我也可以在不同的文章类型内容编辑器 使用不同的样式文件表?通过自定义不同的样式表制作出多样化个性化的布局模版出来?是的,我们按照上面的思路也可以自己定义不同的文章类型内容编辑器分别 引用不同的样式文件表:

post_type) { case 'post': add_editor_style('editor-style-post.css'); break; case 'page': add_editor_style('editor-style-page.css'); break; case '[POSTTYPE]': add_editor_style('editor-style-[POSTTYPE].css'); break; } } add_action( 'admin_head', 'custom_editor_style' ); ?>

把上面的代码加到你的functions.php文件即可。这里的“ editor-style-[POSTTYPE].css ”会根据你文章的类型自动创建相对应的样式表文件,例如公告:“ bulletin ”,则会自动引入“ editor-style-bulletin.css ”。

说到自动获取文章类型然后输出相对应的文章类型样式表,也可以用下面的代码调用方式来自动获取相对应的文章类型,是属于日志呢、还是页面、或者还是 公告、视频、相册等等。一切交给后台自动判断。个人感觉,相对于上面的if语句来判断引用相对应文章类型来说,这种实现方式更加的灵活,效率更高,代码更 简洁的特点。当然选择哪一种实现方法,各自可以根据自己的模版各自选择,最合适的才是最好的。

post_type.'.css' ) ); } add_action( 'admin_head', 'custom_editor_style' ); ?>

好了,接下来要怎么折腾你的Wordpress内容编辑器,看你们的了。在这里介绍的只是思路,创新实践还是靠大家。欢迎大家一起来探讨……

篇14:自定义作文

于浅唱低吟间,作一曲离殇,以念青春。

转叹年华,回眸青春,才发现岁月已逆流成河。怅然时,方觉人生去了二十载,也才晓幼时的无知无扰,少时的简单快乐,早已不复它存。唯有从某地某人处寻得片影只身,偶尔还会笑笑地指着说上一句:嘿,看,当年我也一样。却不觉有种东西湿了心田,只因悄悄含泪细数回忆。

有一种不能说的秘密别名回忆,偷不走,拿不掉,忘不了。或许那个秘密里的角色早已淡出视野,但注定这就是青春故事里的一隅。拂去嘈杂,在深夜轻轻言语:嗨,你们都好吗?还有你,我的青春。

温婉的歌声从耳机飘向窗外无尽的黑夜,享受着属于她的自由,而我欣赏着她的美妙,尽情享受着从内心深处喷薄而出的情感。伴着柔情的细雨,呡一小口温水,在键盘上回忆青春。

翻开相册,打开思绪的封印,才发现,oh,那谁,原来你一直都在。一步一前,不能自止我的思念:那一年,五湖四海的我们在初中相遇,用心经营着太年轻的青春。那一年,缘分东拼西凑着,把我们相聚在难忘的高中。那一年,鬼使神差的,我们邂逅大学,继续为青春谱曲。那一年,那一年,那一年,是属于我的秘密,属于我的青春,属于我的幸福。这么多年了,还有最不能少的就是你——我的家——我人生中得到的最奢华的恩赐。

夜,更深了,心,更明了。青春得到的太多,也失去的太多。感谢你的出现,即使你只是个过客;感谢你的出现,即使你刺伤我的生活。因为你们都是我青春曲上的一个音符。

闹了青春,扰了浮华。幸得一方清宁,裁去乱绪,美了韶华。

一声酣响,一声咕噜,呵,睡得真香!青春ing,我要自定义!

篇15:自定义作文

十七岁时,我已经踏上高中的旅程了。照古代来看,也算是混上个秀才级别的了,也该明些事理。可现实中的我却不这样,总是在错误的时间出现在错误的场合,既浪费了光阴,有消瘦掉了思想与精力。

当然,也不是次次、件件都做错事,也还是有些积极向上的。譬如说我的爱好吧:书法、音乐、打乒乓球,我生命中的“三大乐事”,我常常花时间去与它们碰面的。心情舒畅时,就听听音乐、练练书法,这样使我变得愈加轻松了;若是心情不好时,打球就可以发泄,因为在球场上,你可以把对手看成敌人,想要一招一式置其于死地,那样就痛快极了,痛快完了,心里自然高兴。随即与同窗谈天说地,更是不亦乐乎了。

一个复杂的、变化多样的心情左右着我的灵魂,我也变复杂了。

或许你曾有过这样的经历:与班上的某个漂亮的女生坐在一起或走得很近。若遇到很活泼很有“号召力”的男生,他便会毫不留情的剖析你们,你虽然羞红了脸,可心里却是欢喜的。这时总会迎来一阵阵欢笑、应和,你就更飘飘然了。

害羞点、像我这样的男生,八成不敢再和她说话了,哪怕是多看一眼。因为此时有很多双眼睛盯着我。一不小心竟成了我们班“焦点人物”,该喜还是悲呢?

遇上旧时的同学,男生则冷冷地打打招呼,女生便得寒暄几句,“你又喜欢谁了?”“唉,男生真花心”……凡此种种,我常常被问得堵上了嘴,或是不知如何措辞,或是直接点头承认,更爽快些。她默默地笑了。我也笑了,因为他们不懂得我内心深处的孤独,看到的只是最直接的容颜,所以他们是不会慈悲的'。

有人问我十七岁的青春是什么样的,我想:用“情感单薄,寂寞无涯”来定义,再合适不过了。

篇16:自定义作文

不曾拥有掌声的舞台,是寂静的。不曾拥有掌声的我,是自由的。

——题记

梵高的画——《星空》,受世人的称赞,可是他死了。孔子的思想——儒家思想,流芳百世,可是他死了。嵇康的琴声——《广陵散》,感天动地,可是他死了。他们都死了,死得干脆,毫无自由地被束缚在地底。陪伴他们的,只有后人的掌声。

哲学家说,掌声是诱惑。它引诱着人们从谦虚走向骄傲,它引诱着人们从成功的巅峰走向奚落的谷底,它会使人误入歧途。可是说到底,掌声的负面,是留给那些没有平常心的人。我说,掌声除了有负面,还有正面,决定它的,是那个得到掌声的人。

社会学家说,掌声是动力。它用它真诚的赞美,推动整个社会的前进与发展。它可以使自卑的人重获自信,找回真正的自己。它可以将人们从黑暗的角落带到光明的地方。有了掌声,社会就是一个光芒四射的舞台,它给每个人掌声。在这个大舞台里,展现自己的机会有很多很多。我说,掌声并没有这种神奇的能力,决定它的,是那个得到掌声的人。

心理学家说,掌声是支柱。它可以给人带来心理上的安慰,从而支撑着人们的信念。有时候,人们会垂头丧气,一蹶不振,除了心理暗示之外,使他们重新昂起头的,还可以是掌声。因为有了掌声,他们可以向着未来迈出坚实的步伐,迎接成功的曙光。我说,掌声的力量,并没有如此强大,决定它的,是那个得到掌声的人。

音乐家说……

文学家说……

历史学家说……

对于掌声,并不是权威人士才有决定权,其实每个人都有决定权。而我的决定是,我不需要掌声。因为无论在什么样的掌声中,在什么样的目光中,我都是被束缚的,是失去自由的。得到掌声,失去自由,这样的代价我无法承受。所以我不需要掌声,所以我平淡对待掌声。

掌声是虚伪的,掌声是真诚的,掌声是奉承的,掌声是……

这些都不是掌声的标准意义,因为掌声根本没有所谓的标准意义。掌声是自定义的,而掌声的自定义,在于人的心。

篇17:自定义dialogactivity

android自带的dialog样式一般不满足自己的要求,那就要求dialog自定义,

其实,activity也是可以以dialog的形式存在的,我们只需在清单文件中设置其theme属性即可:

android:name=“.EditActivity”

android:theme=“@android:style/Theme.Dialog”

一般的activity形式的dialog,触摸其外部都是会dismiss的,那么,我们如何避免其被dismiss掉呢?

要想实现这一点,其实只需一句代码:

setFinishOnTouchOutside(false)即可,这有点像popupwindow的setOutsideTouchable(false);

要做到按返回键也不消失的话,只需屏蔽返回键或重写backpress方法

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_BACK){

return true;

}

return super.onKeyDown(keyCode, event);

}

@Override

public void onBackPressed {

////在默认情况下是会调用finish()方法的

///super.onBackPressed();

}

/////这个是activity本来要实现的方法

public void onBackPressed() {

if (!mFragments.popBackStackImmediate()) {

finish();

}

}

这样做还不够,activity以dialog的形式显示,宽度会比较小,这就需要我们自己给定宽度了:

WindowManager manager = getWindowManager();

DisplayMetrics displayMetrics = new DisplayMetrics();

Display display = manager.getDefaultDisplay();

display.getMetrics(displayMetrics);

int width = displayMetrics.widthPixels;

int height = displayMetrics.heightPixels;

WindowManager.LayoutParams params = getWindow().getAttributes();

params.width = (int) (width*0.8);

getWindow().setAttributes(params);

这样我们就设置好了activity的宽度了,

篇18:自定义渐变

虽然我们已经学会了如何使用渐变工具,但只能在渐变列表中选择,而有时候我们需要的渐变色并不包含在其中,这就需要我们自己来定义渐变, 0931定义渐变的方法就是选择渐变工具〖G/SHIFT G〗,然后点击公共栏中的渐变缩览图,就会出现如下图的设置框。上方的预设就是目前所使用的渐变列表。列表右方的“载入”按钮是载入其他的渐变设定。“存储”按钮是将目前列表中的所有设定予以存储。存储的文件名为.grd,通过这种方式可以与别人交换渐变的设定。 我们点击其中位于第1行第4个“红色、绿色”渐变,也就是我们在前面例子中使用到的。此时可看到渐变列表下方的名称处出现了该名称。同时最醒目的就是位于整个设置框下方的渐变条编辑器,我们主要设定工作都将在这里完成。

既然是定义渐变色,那么就需要指定从什么颜色变到什么颜色,这个指定就是由渐变条下方的色标完成的。如下左图所示,现在有着两个色标,分别是红色和绿色,它们位于渐变条的两端,代表了这个渐变设定就是从红色到绿色。 0932现在我们增加色标以定义更多的渐变色。在该区域中鼠标光标将变为,此时单击即可增加一个新色标(取色为目前的前景色),如下中图1处。 0933双击色标或选择色标(被选择色标的箭头为黑色)后单击3处将出现拾色器,此时可更改色标的颜色。单击4处可以选择色标的取色类型,“用户颜色”代表我们在这里所指定的颜色。如果将前景或是背景作为取色,在使用的时候渐变的实际效果将随着Photoshop前景色和背景色的不同而不同。 0934左右拖拉色标可改变色标在渐变条中的位置,色标的位置百分比是针对全部渐变范围的,是一种绝对位置。也可由5处直接改变数值,改变数值的几种方法不知道大家是否还记得,这里复习一下,它们基本都可用在任何有数值的地方:手动输入、在“位置”字样上左右拖拉(SHIFT加速、ALT减速)、按住CTRL在数值处左右拖拉(SHIFT加速、ALT减速)、点击数字后使用鼠标滚轮(SHIFT加速)。 大家还记得如何用移动工具复制图层吗?是按住〖ALT〗拖动图层。那么在这里也是一样,按住〖ALT〗拖动将会复制色标。 0935注意在色标与色标之间有一个小菱形,称为色标中点,它决定两个相邻颜色的分配比例。如下中图2处所代表的是黄色与绿色的分配比例,默认是50%,代表两种颜色平均分配。如果将该点向黄色移动则代表绿色的比例增大,反而反之。色标中点的位置百分比是针对相邻两种颜色之间的区域的,是一种相对位置。选择色标中点后可在下中图5处看到位置数值。 0936若要删除某个色标,可在选择色标点击“位置”右方的“删除”按钮。或在渐变条中直接将色标向下拖拉,如下右图。

0937在掌握了以上的内容后,我们来看位于渐变条上方的不透明度标,

不透明度标控制着渐变各处的不透明度。不透明度标的操作方法(增加、修改、移动、删除)与色标完全一致。相邻的两个不透明度标也有一个中点控制着分配比例。如下左图。与色标用彩色来表示其所指定的颜色类似,不透明度标用灰度来表示其所代表的不透明度。黑色为100%,即完全不透明。白色为0%,即完全透明。 0938在完成渐变定义后,可直接使用渐变工具付之实施,但一旦选用了其他的渐变设定,本次定义的渐变就消失了。如果打算多次使用,应该将其予以保存。如下右图,在名称中输入适当的名字,单击“新建”按钮。所设定的渐变就会保存到目前的列表中了。但这样的保存只是保存在这台电脑的Photoshop中,如果要把这个渐变设定在其他电脑的Photoshop中使用,则应该通过存储按钮将列表保存为文件(这样的操作也被称为“输出渐变设定”),然后将该文件发送给对方的电脑。 为了防止由于操作系统重装等带来的信息丢失,建议大家将自己定义或通过其他途径获得的渐变设定利用这种方法保存到其他硬盘分区中。笔刷、图案等也是如此。

0939位于渐变条上方的“平滑度”选项控制色彩的过渡范围,设定为100%可获得最亮丽最丰富的过渡色彩。如下图是默认渐变列表中“黄色、紫色、橙色、蓝色”在平滑度为100%和0%的区别。

0940在“渐变类型”中我们可以选择为“杂色”,这种渐变的原理类似于我们在笔刷定义中接触过的色彩抖动,就是在指定的色彩范围内随机地挑选色彩。此时不能手动设定色标和不透明度标。 “粗糙度”选项可控制渐变颜色之间的柔和度,设为100%时各种色彩之间最为锐利。 颜色模型和下方的控制条是指定色彩随机的范围的,以下左图中的RGB方式为例,此时R控制条上的黑色箭头位于最左端,白色箭头位于最右端,表示红色的随机区域从0至255。如果只将R的黑色箭头向右移动到一半的位置,白色箭头保持在最右端,这表示红色的随机范围改为128至255,那么渐变条将偏红。如果只将R的白色箭头向左移动到一半的位置,黑色箭头保持在最左端,则表示红色的随机范围改为0至128,那么渐变条将偏什么色呢?希望大家能以最快的速度回答出来,然后动手验证。 “限制颜色”选项可以防止颜色过于饱和,开启后渐变条中较为亮丽的颜色将变得暗淡。 “增加透明度”选项可以为渐变条随机添加透明度。 点击“随机化”按钮将在指定的颜色范围内随机产生渐变条。

杂色渐变尽管很难控制,但其所产生的丰富色彩也是实底渐变望尘莫及的,在制作一些较为明快的设计稿时可用来提供素材。如下2图就是用随机产生的杂色渐变分别以径向样式,和角度样式所作出的效果。本课的练习中也会用到左图来制作土星光环 。

篇19:自定义ContentProvider

ContentProvider作为安卓的四大组件之一,在看开发中用到的频率远不如其他三个,以至于我都把这个东西给忘了,最近由于工作原因,不得不重新拾起来总结一下,那么今天就来说说自定义ContentProvider吧,

今天的案例是这样的,我们有两个App,一个叫做cpHost,作为内容提供者;另外一个叫做cpTest,专门用来操作这个cpHost中的数据。我们的cpHost中有一个数据库,该数据库中有一个User表,我们通过内容提供者将这个User表共享出去,供其他App调用。下面我们就来看看怎么实现这样一个效果。

既然用到数据库存储用户表,那么毫无疑问我们需要一个DBHelper,如下:

public class DBHelper extends SQLiteOpenHelper { public static final String USERTABLE = user_table; public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE TABLE IF NOT EXISTS + USERTABLE + (_id INTEGER PRIMARY KEY AUTOINCREMENT,USERNAME TEXT,NICKNAME TEXT,GENDER TEXT,AGE TEXT);); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}我们创建一个用户表,然后在在MainActivity中将该表中的数据显示出来,这样方便我们后面看到操作效果,于是我们需要一个listview,看看MainActivity的布局文件:

MainActivity.java:

public class MainActivity extends Activity { private ListView lv; private DBHelper helper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) this.findViewById(R.id.lv); } public ListgetData() { helper = new DBHelper(this, lenve.db, null, 1); SQLiteDatabase db = helper.getWritableDatabase(); Listlist = new ArrayList(); Cursor c = db.rawQuery(SELECT * FROM + DBHelper.USERTABLE, null); User u = null; while (c.moveToNext()) { String username = c.getString(c.getColumnIndex(USERNAME)); String nickname = c.getString(c.getColumnIndex(NICKNAME)); String gender = c.getString(c.getColumnIndex(GENDER)); String age = c.getString(c.getColumnIndex(AGE)); u = new User(username, nickname, gender, age); list.add(u); } c.close(); return list; } @Override protected void onResume() { super.onResume(); lv.setAdapter(new MyAdapter(this, getData())); }}这里之所以把给ListView设置Adapter的方法放在onResume()方法中执行,主要是为了测试方便,没有其他意思,那么我们在来看看UserBean:

public class User { private String username; private String nickname; private String gender; private String age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public User(String username, String nickname, String gender, String age) { this.username = username; this.nickname = nickname; this.gender = gender; this.age = age; } public User() { }}还有一个MyAdapter:

public class MyAdapter extends BaseAdapter { private Context context; private Listlist; public MyAdapter(Context context, Listlist) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.lv_item, null); holder = new ViewHolder(); holder.ageTv = (TextView) convertView.findViewById(R.id.age_tv); holder.nickNameTv = (TextView) convertView.findViewById(R.id.nickname_tv); holder.userNameTv = (TextView) convertView.findViewById(R.id.username_tv); holder.genderTv = (TextView) convertView.findViewById(R.id.gender_tv); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } User u = list.get(position); holder.ageTv.setText(u.getAge()); holder.genderTv.setText(u.getGender()); holder.nickNameTv.setText(u.getNickname()); holder.userNameTv.setText(u.getUsername()); return convertView; } class ViewHolder { TextView userNameTv, nickNameTv, genderTv, ageTv; }}这些都很简单的显示部分的代码,我就不再详细解释。说完这些我们终于可以介绍今天的核心内容了,那就是ContentProvider。我们自定义的ContentProvider首先要继承ContentProvider,继承ContentProvider之后,我们会看到有多个方法需要我们实现,分别onCreate()、query、getType、insert、delete、update,主要是这几个方法,通过方法名字我们都能看出这几个方法的含义,就是执行增删改查操作,其中onCreate在应用启动的时候会调用,我们可以在里边做一些初始化的操作,但是不宜做一些耗时过长的操作,否则会导致应用启动时间变长,造成不好的用户体验。在其他的方法中我们分别执行相应的增删改查操作即可。说到这里,我们不得不介绍ContentProvider中另外一个非常重要的东西,那就是Uri。

Uri是ContentResolver执行CRUD方法时的重要参数,我们可以从Uri中提取出我们要操作的数据对象,要操作哪一条数据等等信息,UriMatcher对象映射Uri的返回码,我们可以使用UriMatcher来方便的知道ContentResolver想要干什么。下面我们举例来说明一下:

content://com.lenve.cphost.mycontentprovider/user/3一般情况下,我们见到的Uri就是这样的,我们可以将Uri分为三部分,第一部分是固定内容,第二部分是authorities,也就是我们在清单文件中注册ContentProvider时的authorities参数,最后一部分表示数据源路径,可有可无,这些根据自己的项目需求随意定义即可,但是这里有一些约定俗成的规则,比如:

1.user多数情况下表示我们要操作的表名,因为一个ContentProvider可能涉及到多个表,通过这里来进行区分。

2.如果user之后没有参数,默认返回当前表中所有数据,或者是操作当前表中所有数据

3.user之后的3表示操作数据库的条件,可以是id,也可以是其他字段。

那么这么长一个字符串我们要怎么提取我们需要的数据呢?难道要用正则?其实不必,这里就用到我们前面说的UriMatcher,使用UriMatcher会自动对我们的Uri进行匹配,但是,在匹配之前我们要先定义一下匹配规则,如下:

private static final String AUTHORITY = com.lenve.cphost.mycontentprovider; static { matcher = new UriMatcher(UriMatcher.NO_MATCH); matcher.addURI(AUTHORITY, user, 1);// 配置表 matcher.addURI(AUTHORITY, user/#, 2);// 匹配任何数字 matcher.addURI(AUTHORITY, user/*, 3);// 匹配任何文本 }我们一般习惯于在静态模块中初始化UriMatcher,我们可以向其中添加匹配规则,比如第6行,我们添加了匹配规则,如果如果Uri第三部分只用一个user,那么匹配结果为1,第7行,#表示任意数字,这句话表示如果Uri的第三部分是数字,那么匹配结果为2,第8行,*表示任意字符,user后还跟了第三个参数,那么匹配结果为3,我们以delete方法为例:

@Override public int delete(Uri uri, String selection, String[] selectionArgs) { int code = matcher.match(uri); int result = 0; switch (code) { case UriMatcher.NO_MATCH: break; case 1: // 删除所有 result = db.delete(DBHelper.USERTABLE, null, null); Log.d(qf, 删除所有数据!); break; case 2: // content://com.lenve.cphost.mycontentprovider/user/10 // 按条件删除,id result = db.delete(DBHelper.USERTABLE, _id=?, new String[] { ContentUris.parseId(uri) + }); Log.d(qf, 根据删除一条数据); break; case 3: // content://com.lenve.cphost.mycontentprovider/user/zhangsan // uri.getPathSegments()拿到一个List,里边的值分别是0-->user、1-->zhangsan result = db.delete(DBHelper.USERTABLE, USERNAME=?, new String[] { uri.getPathSegments().get(1) }); break; default: break; } return result; }

调用Uri中的matcher方法来进行匹配,系统会根据我们在静态模块中的定义来返回相应的匹配结果,根据不同的结果,执行不同的操作,那么我们有什么方法可以快速提取出Uri中的参数呢?

这里我们介绍两个方法,

1.比如我们的Uri是这样的:

content://com.lenve.cphost.mycontentprovider/user/zhangsan那么我们通过uri.getPathSegments()方法可以拿到一个List集合,该集合中放了两个字符串,第一个是user,第二个是zhangsan

2.比如我们的Uri是这样的:

content://com.lenve.cphost.mycontentprovider/user/10那么我们可以通过ContentUris.parseId(uri)方法获得10这个数字

以上两种方式基本已经可以解决我们遇到的所有问题了,

说了这么多,现在给大家看看一个完整的我的自定义ContentProvider:

public class MyContentProvider extends ContentProvider { private SQLiteOpenHelper helper; private SQLiteDatabase db; private static UriMatcher matcher; private static final String AUTHORITY = com.lenve.cphost.mycontentprovider; static { matcher = new UriMatcher(UriMatcher.NO_MATCH); matcher.addURI(AUTHORITY, user, 1);// 配置表 matcher.addURI(AUTHORITY, user/#, 2);// 匹配任何数字 matcher.addURI(AUTHORITY, user/*, 3);// 匹配任何文本 } @Override public boolean onCreate() { helper = new DBHelper(getContext(), lenve.db, null, 1); db = helper.getWritableDatabase(); Log.d(qf, MyContentProvider--->onCreate()); return true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { return null; } @Override public String getType(Uri uri) { return null; } @Override public Uri insert(Uri uri, ContentValues values) { db.insert(DBHelper.USERTABLE, null, values); return null; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { int code = matcher.match(uri); int result = 0; switch (code) { case UriMatcher.NO_MATCH: break; case 1: // 删除所有 result = db.delete(DBHelper.USERTABLE, null, null); Log.d(qf, 删除所有数据!); break; case 2: // content://com.lenve.cphost.mycontentprovider/user/10 // 按条件删除,id result = db.delete(DBHelper.USERTABLE, _id=?, new String[] { ContentUris.parseId(uri) + }); Log.d(qf, 根据删除一条数据); break; case 3: // content://com.lenve.cphost.mycontentprovider/user/zhangsan // uri.getPathSegments()拿到一个List,里边的值分别是0-->user、1-->zhangsan result = db.delete(DBHelper.USERTABLE, USERNAME=?, new String[] { uri.getPathSegments().get(1) }); break; default: break; } return result; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { int code = matcher.match(uri); int result = 0; switch (code) { case 1: result = db.update(DBHelper.USERTABLE, values, selection, selectionArgs); break; case 2: result = db.update(DBHelper.USERTABLE, values, _id= + ContentUris.parseId(uri) + AND + selection, selectionArgs); break; // 根据手动传参id来更新 case 3: result = db.update(DBHelper.USERTABLE, values, selection, selectionArgs); break; } return result; }由于时间关系,有几个方法没有实现,不过原理都是一样的,不多说。

所有这些都做完之后,别忘了在清单文件中注册ContentProvider,如下:

这里解释一下第三个参数,设置为true表示允许其他App调用,设置为false表示不允许其他App调用。

这里说完,我们再看看怎么在cpTest这个App中操作这些数据:

核心代码如下:

public class MainActivity extends Activity { private ContentResolver cr; private ContentValues values; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cr = getContentResolver(); values = new ContentValues(); } public void onClickBtn(View v) { switch (v.getId()) { case R.id.add_btn: addData(); break; case R.id.delete_btn: deleteData(); break; case R.id.update_btn: updateData(); break; case R.id.search_btn: break; default: break; } } private void updateData() { // values.put(USERNAME, lisi); // cr.update(Uri.parse(content://com.lenve.cphost.mycontentprovider/user), // values, _id=?, // new String[] { 4 + }); values.put(USERNAME, wangwu); cr.update(Uri.parse(content://com.lenve.cphost.mycontentprovider/user/3), values, USERNAME=?, new String[] { lisi }); } private void deleteData() { // 根据id删除 // cr.delete(Uri.parse(content://com.lenve.cphost.mycontentprovider/user/1), // , new String[] {}); // 根据username删除 cr.delete(Uri.parse(content://com.lenve.cphost.mycontentprovider/user/zhangsan), , new String[] {}); } private void addData() { values.put(USERNAME, zhangsan); values.put(NICKNAME, 张三); values.put(AGE, 18); values.put(GENDER, 男); cr.insert(Uri.parse(content://com.lenve.cphost.mycontentprovider), values); }}

好了,关于自定义ContentProvider就说这么多。

自定义动画教学设计

淘宝美工是做什么的_淘宝美工工作内容

AutoCAD中自定义填充图案

自定义链接后端数据库数据库教程

淘宝广告法

淘宝个人简历

淘宝感谢信

淘宝感谢信

淘宝评语

淘宝策划书

《淘宝自定义内容范文(共19篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档