版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)帶動(dòng)畫柱狀圖
/upload/information/20200623/125/126985.jpg/upload/information/20200623/125/126986.gifpackage
com.lixiaodaoaaa.view.pieview;
import
android.content.Context;
import
android.graphics.Canvas;
import
android.graphics.Paint;
import
android.graphics.RectF;
import
android.support.annotation.Nullable;
import
android.util.AttributeSet;
import
android.view.View;
import
com.gcssloop.graphics.R;
import
com.lixiaodaoaaa.uitls.DensityUtils;
/**************************************
*
***
/lixiaodaoaaa
**
*
***
create
at
2017/5/18
23:45
****
*
*******
by:lixiaodaoaaa
**********
**************************************/
public
class
PColumn
extends
View
{
int
MAX
=
100;//最大
int
corner
=
40;
int
data
=
0;//顯示的數(shù)
int
tempData
=
0;
int
textPadding
=
20;
Paint
mPaint;
int
mColor;
Context
mContext;
public
PColumn(Context
context)
{
super(context);
mContext
=
context;
}
public
PColumn(Context
context,
@Nullable
AttributeSet
attrs)
{
super(context,
attrs);
mContext
=
context;
initPaint();
}
public
PColumn(Context
context,
@Nullable
AttributeSet
attrs,
int
defStyleAttr)
{
super(context,
attrs,
defStyleAttr);
mContext
=
context;
initPaint();
}
private
void
initPaint()
{
mPaint
=
new
Paint();
mPaint.setAntiAlias(true);
mColor
=
mContext.getResources().getColor(R.color.colorPrimary);
mPaint.setColor(mColor);
}
@Override
public
void
draw(Canvas
canvas)
{
super.draw(canvas);
if
(data
==
0)
{
mPaint.setTextSize(getWidth()
/
2);
RectF
oval3
=
new
RectF(0,
getHeight()
-
DensityUtils.pxTodip(mContext,
20),
getWidth(),
getHeight());//
設(shè)置個(gè)新的長方形
canvas.drawRoundRect(oval3,
DensityUtils.pxTodip(mContext,
corner),
DensityUtils.pxTodip(mContext,
corner),
mPaint);
canvas.drawText("0",
getWidth()
*
0.5f
-
mPaint.measureText("0")
*
0.5f,
getHeight()
-
DensityUtils.pxTodip(mContext,
20)
-
2
*
DensityUtils.pxTodip(mContext,
textPadding),
mPaint);
return;
}
//防止數(shù)值很大的的時(shí)候,動(dòng)畫時(shí)間過長
int
step
=
data
/
100
+
1;
if
(tempData
<
data
-
step)
{
tempData
=
tempData
+
step;
}
else
{
tempData
=
data;
}
//畫圓角矩形
String
S
=
tempData
+
"";
//一個(gè)字和兩,三個(gè)字的字號相同
if
(S.length()
<
4)
{
mPaint.setTextSize(getWidth()
/
2);
}
else
{
mPaint.setTextSize(getWidth()
/
(S.length()
-
1));
}
float
textH
=
mPaint.ascent()
+
mPaint.descent();
float
MaxH
=
getHeight()
-
textH
-
2
*
DensityUtils.pxTodip(mContext,
textPadding);
//圓角矩形的實(shí)際高度
float
realH
=
MaxH
/
MAX
*
tempData;
RectF
oval3
=
new
RectF(0,
getHeight()
-
realH,
getWidth(),
getHeight());//
設(shè)置個(gè)新的長方形
canvas.drawRoundRect(oval3,
DensityUtils.pxTodip(mContext,
corner),
DensityUtils.pxTodip(mContext,
corner),
mPaint);
//寫數(shù)字
canvas.drawText(S,
getWidth()
*
0.5f
-
mPaint.measureText(S)
*
0.5f,
getHeight()
-
realH
-
2
*
DensityUtils.pxTodip(mContext,
textPadding),
mPaint);
if
(tempData
!=
data)
{
postInvalidate();
}
}
public
void
setData(int
data,
int
MAX)
{
this.data
=
data;
tempData
=
0;
this.MAX
=
MAX;
postInvalidate();
}
}/*
*
Copyright
2016
GcsSloop
*
*
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
*
*
/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.
*
*
Last
modified
2016-10-02
00:22:33
*
*/
package
com.lixiaodaoaaa.graphics;
import
android.os.Bundle;
import
android.support.v7.app.AppCompatActivity;
import
com.gcssloop.graphics.R;
import
com.lixiaodaoaaa.view.pieview.PColumn;
public
class
MainActivity
extends
AppCompatActivity
{
private
PColumn
column_one;
private
PColumn
column_two;
private
PColumn
column_three;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initAllViews();
}
private
void
initAllViews()
{
column_one
=
(PColumn)
findViewById(R.id.column_one);
column_two
=
(PColumn)
findViewById(R.id.column_two);
column_three
=
(PColumn)
findViewById(R.id.column_three);
column_one.setData(0,
100);
column_two.setData(30,
100);
column_three.setData(40,
100);
}
}<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.lixiaodaoaaa.graphics.MainActivity"
>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"/>
<com.lixiaodaoaaa.view.pieview.PColumn
android:id="@+id/column_one"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_wei
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年支付工程款擔(dān)保及工程索賠處理協(xié)議3篇
- 2025版綠色環(huán)保產(chǎn)品銷售代理合同
- 2024年版彩鋼瓦購銷協(xié)議標(biāo)準(zhǔn)模板版B版
- 2024年花崗巖荒料銷售協(xié)議樣本版
- 二零二五年度醫(yī)療器械研發(fā)采購合同3篇
- 2024年管樁供應(yīng)與采購合同
- 2024年標(biāo)準(zhǔn)場地租賃協(xié)議房屋使用條款詳例版
- 2024版?zhèn)€人流動(dòng)資金借款合同樣本版B版
- 2025年度辦公家具智能化升級與用戶體驗(yàn)優(yōu)化合同3篇
- 2024房地產(chǎn)公司客戶服務(wù)人員勞動(dòng)合同樣本3篇
- 2024年機(jī)動(dòng)車檢測站質(zhì)量手冊程序文件記錄表格合集(根據(jù)補(bǔ)充要求編制)
- 公司未來發(fā)展規(guī)劃及目標(biāo)制定
- 2023-2024學(xué)年上海市普陀區(qū)三年級(上)期末數(shù)學(xué)試卷
- 2024年01月11067知識產(chǎn)權(quán)法期末試題答案
- 2025版國家開放大學(xué)法律事務(wù)專科《民法學(xué)(2)》期末紙質(zhì)考試案例分析題庫
- 浙江省杭州市錢塘區(qū)2023-2024學(xué)年四年級上學(xué)期語文期末試卷
- GB/T 44713-2024節(jié)地生態(tài)安葬服務(wù)指南
- 2024年形勢與政策 第一講《讀懂中國式現(xiàn)代化》
- 一年級家長會課件2024-2025學(xué)年
- 小班班本課程《吃飯這件小事》
- 中國特色大國外交和推動(dòng)構(gòu)建人類命運(yùn)共同體
評論
0/150
提交評論