بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

نظرخواهی در رابطه با اولین نرم افزار من

مدیریت گفتگو
محسن فتحی 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام خستخ نباشید

اولین نرم افزار من در کافه بازار منتشر شد

لطفا نظراتتون رو راجبش بدین

خوشحال میشم

ممنون

https://cafebazaar.ir/app/com.mlaitnerbox.fathi.mohsen.mlaitnerbox/?l=fa

نظرات

Moein 10 سال پیش
موفق باشی گرافیک خوبی داره , موضوعشم به نظر کاربردی میاد , فقط ایکونش زیاد جالب نیس , قیمتشم زیاده نسبت به برنامه های مشابه از نظر کارکرد , در کل به عنوان اولین کار , خیلی خوبه موفق باشی
M Kasaei 10 سال پیش
بسیار عالی با گرافیک خوب
!M!KT 10 سال پیش
عالیه. گرافیکش هم که توپه توپه
alfredo 10 سال پیش
آفرین، هم موضوع خوبی رو انتخاب کردید هم زیبا و پویا ساختیدش. فقط غلط املایی های توضیحاتش رو رفع کنید، و اون چرخ دنده هم از زیر بینی آیکن برنامه خارج کنید. به امید فرروش میلیونی.
محسن فتحی 10 سال پیش
من یه سه چهار روزیو صبر کردم ولی فقط یه نفر نرم افزار رو خریداری کرد .. دلسرد شدم :( رایگانش کردم :|
Soheil 10 سال پیش
خیلی خوبه دمت گرم ولی الان این مدل برنامه ها زیاد شده اگه میخوای یه چیزی بسازی که خوب فروش بره به یه چیز جدید فکر کن که تا حالا کسی نساخته :|
خواست خدایی 10 سال پیش
از دید من گرافیکش عالی و موضوع عالی رایگان باشه بهتره بعدش اگه دانلودش زیاد شد کارای باحال تری میشه کرد من دانلود می کنم و 5 ستاره می دم
محسن فتحی 10 سال پیش
ممنون ... همه برنامه ها لغت تو بانک اطلاعاتیشون دارن .. ولی اینجا کاربر خودش لغت مینویسه .. میتونه به جای نوشتن لغت و معنی اون .. بنویسه فورمول به دست آوردن r .. بعدش پشتش از رو جزوه عکس بگیره .. یا یه طرف برگه باشه اسب بعدش پشت برگه عکس اسب باشه برای یادگیری بچه ها :))))
خواست خدایی 10 سال پیش
در ضمن چرا نوشتی خستخ من نمیدونم یعنی چی :)
Mahan 10 سال پیش
برنامه خوبیه دوست عزیز علی الخصوص برای اولین برنامه خیلی هم خوبه .قرارنیست اولین تجربه و اولین برنامه با برنامه های طراز اول و که کار برنامه نویسان حرفه ای هست مقایسه بشه .خیلی عالی بود موفق باشید دوست عزیز
alfredo 10 سال پیش
داداش انقدر زود دلسرد نشو. یکم تبلیغات میکردی براش حداقل، مردم تازه از تعطیلات اومدن و سرشون شلوغه، و شاید به همین خاطر الآن بازار خوب نیست... توی همین سایت های تلگرام که دوستان لینک گذاشتن تبلیغ کن یا یه کلیپ درست کن ازش بذار توی آپارات و اینجور جاها... همه مارکت ها رو هم امتحان کن ! شما چند ماه تلاش کردید تا بسازیدش، حداقل به همون اندازه هم تلاش کنید برای تبلیغش...
sagheb95 10 سال پیش
گرافیکش خیلی جذابه ، موفق باشی

پاسخ‌ها 3

reza1234 10 سال پیش

سلام خوبه اما گرافیکش بنظرم خیلی جذاب نیست

توضیح در رابطه با عملکرد برنامه هم خیلی مفهوم نیست توضیحات در بازار هم غلط املایی داره و بهتره که نداشته باشه

و در نهایت بهتون تبریک میگم و امیدوارم موفق باشید

 

نظرات

Mahdi.Esb 10 سال پیش

طراحی برنامه خیلی عالیه اما یه سوال برای من پیش اومد :

نمودار هاتو با استفاده از لایبراری ساختی ؟اگه اره چه لایبرایی؟

 

نظرات

محسن فتحی 10 سال پیش
نه ... نمودارها رو خودم درست کردم :) ...
!M!KT 10 سال پیش
میتونی کدشو واس ما بذاری
Mahdi.Esb 10 سال پیش
یعنی با همون آموزش های استاد آقاجانی درست کردی؟
محسن فتحی 10 سال پیش
اره خب .. مهندس تو اموزش ها یه سمپل درست میکنن .. با اصولش که آشنا بشی بقیش سخت نیست
محسن فتحی 10 سال پیش

چارت دایره ای :

 
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, "عنوان نمایشی");

این نمودار به تدریج پر میشه

نموداری های بعدی تو یه سری گوشی های قدیمی به سری مشکل های پیش پا افتاده میخوره (البته کسی گزارشی نکرده ولی من خودم یه بار تو یه گوشی نسبتا مسن دیدم) که جزئی هستن و نمودار رو زیر سوال نمیبرن .. چون برنامه اونطوری میخواستم فروش نرفت منم دیگه مشکلاتش رو برطرف نکردم ... 

اونارم بزارم یا نیازی نیست ؟؟؟؟؟؟

نظرات

mosafer 10 سال پیش
سلام کارت قشنگه.. واسه کاره اولت خیلی خوبه!! هیچ وقت نا امید نشو.. موفقیت یه مسیره نه هدف. کارتو ادامه بده اگه لطف کنی نمودار میله ای رو هم بذار ممنون میشم.
mosafer 10 سال پیش
سلام ببخشید من کد بالایی استفاده کردم ولی TotalCount خطا میده میشه توضیح بدین چیه و چه مقداری باید گذاشت؟
mosafer 10 سال پیش
آقا محسن جواب نمیدین.... بائر کنید احتیاج دارم ممنون میشم راهنماییم کنید
محسن فتحی 10 سال پیش
شما جای TotalCount باید مقدار کلی رو بدین .... مثلا value رو میزاریم 10 و TotalCount رو میزاریم 50 .. اینطوری 20 درصد چارت پر میشه .. من استفاده ای که کردم ازش این شکلی بود .. مثلا کاربر تا امروز باید 100 تا کارت وارد میکرد .. و 80 تا وارد کرده .. خب TotalCount من میشه 100 و Value میشه 80 ..
محسن فتحی 10 سال پیش
یه نکته ... من یه جاهایی از کلاس جی استفاده کردم .. مثلا این textPaint.setTypeface(G.font_yekan); کلاس جی تو آموزش های آقای اقاجانی هست .. این یکی که گذاشتم مثلا یه فونت ست میکنه ... که فونت تایپش تو کلاس جی تعریف شده .. اینارم خودت هندل کن

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .