女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]點(diǎn)贊+1效果:GoodView方法:使用GoodView的Demo:? ?public class MainActivity extends Activity {????????@Override ?

點(diǎn)贊+1效果:

GoodView方法:


使用GoodView的Demo:

? ?public class MainActivity extends Activity {

????????@Override
????????protected?void?onCreate(Bundle?savedInstanceState)?{
????????????super.onCreate(savedInstanceState);
????????????setContentView(R.layout.activity_main)

????????????final?GoodView?goodView?=?new?GoodView(this);
????????????Button?button?=?new?Button(this);
????????????button.setOnClickListener(new?View.OnClickListener()?{
????????????????@Override
????????????????public?void?onClick(View?v)?{
????????????????????goodView.setText("+1");
????????????????????goodView.show(v);
????????????????}
????????????});

????????}
????}



實(shí)踐GitHub開(kāi)源GoodView:


GoodView.java :


/*
?*?Copyright?(C)?2016?venshine.cn@gmail.com
?*
?*?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");
?*?you?may?not?use?this?file?except?in?compliance?with?the?License.
?*?You?may?obtain?a?copy?of?the?License?at
?*
?*??????http://www.apache.org/licenses/LICENSE-2.0
?*
?*?Unless?required?by?applicable?law?or?agreed?to?in?writing,?software
?*?distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,
?*?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.
?*?See?the?License?for?the?specific?language?governing?permissions?and
?*?limitations?under?the?License.
?*/
package?sunny.example.opengoodview.goodview;

import?android.annotation.SuppressLint;
import?android.content.Context;
import?android.graphics.Color;
import?android.graphics.drawable.ColorDrawable;
import?android.graphics.drawable.Drawable;
import?android.os.Build;
import?android.os.Handler;
import?android.text.TextUtils;
import?android.util.TypedValue;
import?android.view.View;
import?android.view.animation.AlphaAnimation;
import?android.view.animation.Animation;
import?android.view.animation.AnimationSet;
import?android.view.animation.TranslateAnimation;
import?android.widget.PopupWindow;
import?android.widget.RelativeLayout;
import?android.widget.TextView;

/**
?*?點(diǎn)贊效果
?*
?*?@author?venshine
?*/
@SuppressLint("NewApi")
public?class?GoodView?extends?PopupWindow?implements?IGoodView?{

????private?String?mText?=?TEXT;

????private?int?mTextColor?=?TEXT_COLOR;

????private?int?mTextSize?=?TEXT_SIZE;

????private?int?mFromY?=?FROM_Y_DELTA;

????private?int?mToY?=?TO_Y_DELTA;

????private?float?mFromAlpha?=?FROM_ALPHA;

????private?float?mToAlpha?=?TO_ALPHA;

????private?int?mDuration?=?DURATION;

????private?int?mDistance?=?DISTANCE;

????private?AnimationSet?mAnimationSet;

????private?boolean?mChanged?=?false;

????private?Context?mContext?=?null;

????private?TextView?mGood?=?null;

????public?GoodView(Context?context)?{
????????super(context);
????????mContext?=?context;
????????initView();
????}

????private?void?initView()?{
????????RelativeLayout?layout?=?new?RelativeLayout(mContext);
????????RelativeLayout.LayoutParams?params?=
????????????????new?RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
????????????????????????RelativeLayout.LayoutParams.WRAP_CONTENT);
????????params.addRule(RelativeLayout.CENTER_HORIZONTAL);
????????params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

????????mGood?=?new?TextView(mContext);
????????mGood.setIncludeFontPadding(false);
????????mGood.setTextSize(TypedValue.COMPLEX_UNIT_DIP,?mTextSize);
????????mGood.setTextColor(mTextColor);
????????mGood.setText(mText);
????????mGood.setLayoutParams(params);
????????layout.addView(mGood);
????????setContentView(layout);

????????int?w?=?View.MeasureSpec.makeMeasureSpec(0,?View.MeasureSpec.UNSPECIFIED);
????????int?h?=?View.MeasureSpec.makeMeasureSpec(0,?View.MeasureSpec.UNSPECIFIED);
????????mGood.measure(w,?h);
????????setWidth(mGood.getMeasuredWidth());
????????setHeight(mDistance?+?mGood.getMeasuredHeight());
????????setBackgroundDrawable(new?ColorDrawable(Color.TRANSPARENT));
????????setFocusable(false);
????????setTouchable(false);
????????setOutsideTouchable(false);

????????mAnimationSet?=?createAnimation();
????}

????/**
?????*?設(shè)置文本
?????*
?????*?@param?text
?????*/
????public?void?setText(String?text)?{
????????if?(TextUtils.isEmpty(text))?{
????????????throw?new?IllegalArgumentException("text?cannot?be?null.");
????????}
????????mText?=?text;
????????mGood.setText(text);
????????mGood.setBackgroundDrawable(new?ColorDrawable(Color.TRANSPARENT));
????????int?w?=?(int)?mGood.getPaint().measureText(text);
????????setWidth(w);
????????setHeight(mDistance?+?getTextViewHeight(mGood,?w));
????}

????private?static?int?getTextViewHeight(TextView?textView,?int?width)?{
????????int?widthMeasureSpec?=?View.MeasureSpec.makeMeasureSpec(width,?View.MeasureSpec.AT_MOST);
????????int?heightMeasureSpec?=?View.MeasureSpec.makeMeasureSpec(0,?View.MeasureSpec.UNSPECIFIED);
????????textView.measure(widthMeasureSpec,?heightMeasureSpec);
????????return?textView.getMeasuredHeight();
????}

????/**
?????*?設(shè)置文本顏色
?????*
?????*?@param?color
?????*/
????private?void?setTextColor(int?color)?{
????????mTextColor?=?color;
????????mGood.setTextColor(color);
????}

????/**
?????*?設(shè)置文本大小
?????*
?????*?@param?textSize
?????*/
????private?void?setTextSize(int?textSize)?{
????????mTextSize?=?textSize;
????????mGood.setTextSize(TypedValue.COMPLEX_UNIT_DIP,?textSize);
????}

????/**
?????*?設(shè)置文本信息
?????*
?????*?@param?text
?????*?@param?textColor
?????*?@param?textSize
?????*/
????public?void?setTextInfo(String?text,?int?textColor,?int?textSize)?{
????????setTextColor(textColor);
????????setTextSize(textSize);
????????setText(text);
????}

????/**
?????*?設(shè)置圖片
?????*
?????*?@param?resId
?????*/
????public?void?setImage(int?resId)?{
????????setImage(mContext.getResources().getDrawable(resId));
????}

????/**
?????*?設(shè)置圖片
?????*
?????*?@param?drawable
?????*/
????public?void?setImage(Drawable?drawable)?{
????????if?(drawable?==?null)?{
????????????throw?new?IllegalArgumentException("drawable?cannot?be?null.");
????????}
????????if?(Build.VERSION.SDK_INT?>=?Build.VERSION_CODES.JELLY_BEAN)?{
????????????mGood.setBackground(drawable);
????????}?else?{
????????????mGood.setBackgroundDrawable(drawable);
????????}
????????mGood.setText("");
????????setWidth(drawable.getIntrinsicWidth());
????????setHeight(mDistance?+?drawable.getIntrinsicHeight());
????}

????/**
?????*?設(shè)置移動(dòng)距離
?????*
?????*?@param?dis
?????*/
????public?void?setDistance(int?dis)?{
????????mDistance?=?dis;
????????mToY?=?dis;
????????mChanged?=?true;
????????setHeight(mDistance?+?mGood.getMeasuredHeight());
????}

????/**
?????*?設(shè)置Y軸移動(dòng)屬性
?????*
?????*?@param?fromY
?????*?@param?toY
?????*/
????public?void?setTranslateY(int?fromY,?int?toY)?{
????????mFromY?=?fromY;
????????mToY?=?toY;
????????mChanged?=?true;
????}

????/**
?????*?設(shè)置透明度屬性
?????*
?????*?@param?fromAlpha
?????*?@param?toAlpha
?????*/
????public?void?setAlpha(float?fromAlpha,?float?toAlpha)?{
????????mFromAlpha?=?fromAlpha;
????????mToAlpha?=?toAlpha;
????????mChanged?=?true;
????}

????/**
?????*?設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
?????*
?????*?@param?duration
?????*/
????public?void?setDuration(int?duration)?{
????????mDuration?=?duration;
????????mChanged?=?true;
????}

????/**
?????*?重置屬性
?????*/
????public?void?reset()?{
????????mText?=?TEXT;
????????mTextColor?=?TEXT_COLOR;
????????mTextSize?=?TEXT_SIZE;
????????mFromY?=?FROM_Y_DELTA;
????????mToY?=?TO_Y_DELTA;
????????mFromAlpha?=?FROM_ALPHA;
????????mToAlpha?=?TO_ALPHA;
????????mDuration?=?DURATION;
????????mDistance?=?DISTANCE;
????????mChanged?=?false;
????????mAnimationSet?=?createAnimation();
????}

????/**
?????*?展示
?????*
?????*?@param?v
?????*/
????public?void?show(View?v)?{
????????if?(!isShowing())?{
????????????int?offsetY?=?-v.getHeight()?-?getHeight();
????????????showAsDropDown(v,?v.getWidth()?/?2?-?getWidth()?/?2,?offsetY);
????????????if?(mAnimationSet?==?null?||?mChanged)?{
????????????????mAnimationSet?=?createAnimation();
????????????????mChanged?=?false;
????????????}
????????????mGood.startAnimation(mAnimationSet);
????????}
????}

????/**
?????*?動(dòng)畫(huà)
?????*
?????*?@return
?????*/
????private?AnimationSet?createAnimation()?{
????????mAnimationSet?=?new?AnimationSet(true);
????????TranslateAnimation?translateAnim?=?new?TranslateAnimation(0,?0,?mFromY,?-mToY);
????????AlphaAnimation?alphaAnim?=?new?AlphaAnimation(mFromAlpha,?mToAlpha);
????????mAnimationSet.addAnimation(translateAnim);
????????mAnimationSet.addAnimation(alphaAnim);
????????mAnimationSet.setDuration(mDuration);
????????mAnimationSet.setAnimationListener(new?Animation.AnimationListener()?{
????????????@Override
????????????public?void?onAnimationStart(Animation?animation)?{
????????????}

????????????@Override
????????????public?void?onAnimationEnd(Animation?animation)?{
????????????????if?(isShowing())?{
????????????????????new?Handler().post(new?Runnable()?{
????????????????????????@Override
????????????????????????public?void?run()?{
????????????????????????????dismiss();
????????????????????????}
????????????????????});
????????????????}
????????????}

????????????@Override
????????????public?void?onAnimationRepeat(Animation?animation)?{
????????????}
????????});
????????return?mAnimationSet;
????}
}

IGoodView.java :



/*
?*?Copyright?(C)?2016?venshine.cn@gmail.com
?*
?*?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");
?*?you?may?not?use?this?file?except?in?compliance?with?the?License.
?*?You?may?obtain?a?copy?of?the?License?at
?*
?*??????http://www.apache.org/licenses/LICENSE-2.0
?*
?*?Unless?required?by?applicable?law?or?agreed?to?in?writing,?software
?*?distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,
?*?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.
?*?See?the?License?for?the?specific?language?governing?permissions?and
?*?limitations?under?the?License.
?*/
package?sunny.example.opengoodview.goodview;

import?android.graphics.Color;

/**
?*?@author?venshine
?*/
public?interface?IGoodView?{

????int?DISTANCE?=?60;???//?默認(rèn)移動(dòng)距離

????int?FROM_Y_DELTA?=?0;?//?Y軸移動(dòng)起始偏移量

????int?TO_Y_DELTA?=?DISTANCE;?//?Y軸移動(dòng)最終偏移量

????float?FROM_ALPHA?=?1.0f;????//?起始時(shí)透明度

????float?TO_ALPHA?=?0.0f;??//?結(jié)束時(shí)透明度

????int?DURATION?=?800;?//?動(dòng)畫(huà)時(shí)長(zhǎng)

????String?TEXT?=?"";?//?默認(rèn)文本

????int?TEXT_SIZE?=?16;?//?默認(rèn)文本字體大小

????int?TEXT_COLOR?=?Color.BLACK;???//?默認(rèn)文本字體顏色

}


MainActivity.java :



/*
?*?Copyright?(C)?2016?venshine.cn@gmail.com
?*
?*?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");
?*?you?may?not?use?this?file?except?in?compliance?with?the?License.
?*?You?may?obtain?a?copy?of?the?License?at
?*
?*??????http://www.apache.org/licenses/LICENSE-2.0
?*
?*?Unless?required?by?applicable?law?or?agreed?to?in?writing,?software
?*?distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,
?*?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.
?*?See?the?License?for?the?specific?language?governing?permissions?and
?*?limitations?under?the?License.
?*/
package?sunny.example.opengoodview;

import?android.graphics.Color;
import?android.os.Bundle;
import?android.support.v7.app.ActionBarActivity;
//import?android.support.v7.app.AppCompatActivity;
import?android.view.View;
import?android.widget.ImageView;

import?sunny.example.opengoodview.goodview.GoodView;

/**
?*?Demo
?*
?*?@author?venshine
?*/
public?class?MainActivity?extends?ActionBarActivity?{

????GoodView?mGoodView;

????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????mGoodView?=?new?GoodView(this);
????}

????//android:onClick="good"
????public?void?good(View?view)?{
????????((ImageView)?view).setImageResource(R.drawable.good_checked);
????????mGoodView.setText("+1");
????????mGoodView.show(view);
????}

????public?void?good2(View?view)?{
????????((ImageView)?view).setImageResource(R.drawable.good_checked);
????????mGoodView.setImage(getResources().getDrawable(R.drawable.good_checked));
????????mGoodView.show(view);
????}

????public?void?collection(View?view)?{
????????((ImageView)?view).setImageResource(R.drawable.collection_checked);
????????mGoodView.setTextInfo("收藏成功",?Color.parseColor("#f66467"),?12);
????????mGoodView.show(view);
????}

????public?void?bookmark(View?view)?{
????????((ImageView)?view).setImageResource(R.drawable.bookmark_checked);
????????mGoodView.setTextInfo("收藏成功",?Color.parseColor("#ff941A"),?12);
????????mGoodView.show(view);
????}

????public?void?reset(View?view)?{
????????((ImageView)?findViewById(R.id.good)).setImageResource(R.drawable.good);
????????((ImageView)?findViewById(R.id.good2)).setImageResource(R.drawable.good);
????????((ImageView)?findViewById(R.id.collection)).setImageResource(R.drawable.collection);
????????((ImageView)?findViewById(R.id.bookmark)).setImageResource(R.drawable.bookmark);
????????mGoodView.reset();
????}

}





本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶(hù)體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉