نظرخواهی در رابطه با اولین نرم افزار من
سلام خستخ نباشید
اولین نرم افزار من در کافه بازار منتشر شد
لطفا نظراتتون رو راجبش بدین
خوشحال میشم
ممنون
https://cafebazaar.ir/app/com.mlaitnerbox.fathi.mohsen.mlaitnerbox/?l=fa
سلام خوبه اما گرافیکش بنظرم خیلی جذاب نیست
توضیح در رابطه با عملکرد برنامه هم خیلی مفهوم نیست توضیحات در بازار هم غلط املایی داره و بهتره که نداشته باشه
و در نهایت بهتون تبریک میگم و امیدوارم موفق باشید
طراحی برنامه خیلی عالیه اما یه سوال برای من پیش اومد :
نمودار هاتو با استفاده از لایبراری ساختی ؟اگه اره چه لایبرایی؟
چارت دایره ای :
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.widget.ImageView;
public class PieChart extends ImageView {
Context context;
Paint pnt;
long progressStatus;
long alphaMetod = 0;
long angel = 0;
long maxProgress;
long ProgressNumber = 0;
String Title = "";
public PieChart(Context context) {
super(context);
initialize(context);
}
public PieChart(Context context, AttributeSet attrs) {
super(context, attrs);
initialize(context);
}
public PieChart(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initialize(context);
}
public void setPrograressItems(long progressNumber , long totalNumber , String title)
{
Title = title;
maxProgress = totalNumber;
ProgressNumber = progressNumber;
if(progressNumber >= totalNumber) {
angel = 360;
}
else if(progressNumber == 0) {
angel = 0;
}
else {
long progress = (progressNumber * 100) / totalNumber;
angel = progress * 360 / 100;
}
if (angel < 255 && angel > 0)
alphaMetod = (255 / angel);
else
alphaMetod = 1;
Thread th = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <= angel; i++) {
try {
progressStatus++;
Thread.sleep(5*alphaMetod);
postInvalidate();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
th.start();
}
private void initialize(Context con) {
context = con;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int strock_woidth = (int)(getWidth() * 0.04f);
RectF rec = new RectF();
rec.left = strock_woidth;
rec.right = getWidth() - strock_woidth;
rec.top = strock_woidth;
rec.bottom = getHeight() - strock_woidth;
Paint pnt1 = new Paint();
pnt1.setColor(Color.parseColor("#11FFFFFF"));
pnt1.setAntiAlias(true);
pnt1.setStrokeWidth(strock_woidth);
pnt1.setStyle(Paint.Style.STROKE);
canvas.drawArc(rec, -90, 360, false, pnt1);
Paint textPaint3 = new Paint();
textPaint3.setColor(Color.parseColor("#99FFFFFF"));
textPaint3.setAntiAlias(true);
textPaint3.setTextAlign(Paint.Align.CENTER);
textPaint3.setTypeface(G.font_yekan);
textPaint3.setTextSize((getWidth() * 0.08f));
textPaint3.setStyle(Paint.Style.FILL);
canvas.drawText(Title, getWidth() / 2, (getHeight() / 2) - (getWidth() * 0.2f), textPaint3);
Paint textPaint = new Paint();
textPaint.setColor(Color.parseColor("#FFFFFF"));
textPaint.setAntiAlias(true);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTypeface(G.font_yekan);
textPaint.setTextSize((getWidth() * 0.2f));
textPaint.setStyle(Paint.Style.FILL);
canvas.drawText((progressStatus * 100 / 360) + " %", getWidth() / 2, (getHeight() / 2)+(getWidth() * 0.08f), textPaint);
Paint textPaint2 = new Paint();
textPaint2.setColor(Color.parseColor("#66FFFFFF"));
textPaint2.setAntiAlias(true);
textPaint2.setTextAlign(Paint.Align.CENTER);
textPaint2.setTypeface(G.font_yekan);
textPaint2.setTextSize((getWidth() * 0.08f));
textPaint2.setStyle(Paint.Style.FILL);
canvas.drawText(ProgressNumber + "/"+maxProgress, getWidth() / 2, (getHeight() / 2) + (getWidth() * 0.2f)+(getWidth() * 0.1f), textPaint2);
for (int i = 0; i <= progressStatus; i++) {
Paint pnt = new Paint();
if (progressStatus <= 130)
pnt.setColor(Color.parseColor("#ed2359"));
if (progressStatus > 130 && progressStatus <= 260)
pnt.setColor(Color.parseColor("#ea8769"));
if (progressStatus > 260)
pnt.setColor(Color.parseColor("#50d2c2"));
pnt.setAlpha((int)(i * alphaMetod));
if (i > 255)
pnt.setAlpha(255);
pnt.setAntiAlias(true);
pnt.setStrokeWidth(strock_woidth);
pnt.setStyle(Paint.Style.STROKE);
canvas.drawArc(rec, -90 + i, 1, false, pnt);
}
}
}
نحوه استفاده :
PieChart MathChart1 = (PieChart) findViewById(R.id.MathChart1);
MathChart1.setPrograressItems(TotalCount, Value, "عنوان نمایشی");
این نمودار به تدریج پر میشه
نموداری های بعدی تو یه سری گوشی های قدیمی به سری مشکل های پیش پا افتاده میخوره (البته کسی گزارشی نکرده ولی من خودم یه بار تو یه گوشی نسبتا مسن دیدم) که جزئی هستن و نمودار رو زیر سوال نمیبرن .. چون برنامه اونطوری میخواستم فروش نرفت منم دیگه مشکلاتش رو برطرف نکردم ...
اونارم بزارم یا نیازی نیست ؟؟؟؟؟؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .