Coder Social home page Coder Social logo

Comments (11)

lecho avatar lecho commented on July 3, 2024 3

Hi, I'm not working on that. I don't understand what's the problem and why many people ask about that. Legend can be created as separated view so you and anybody else could create it on your own. It is even a good idea to separate legend from chart view because legend view don't have to be invalidated so often. Data sharing between chart and legend is also not an issue. What's more everyone want the legend to look in a different way.
So I have no plans to add legend until someone provide or propose some viable solution.

from hellocharts-android.

lecho avatar lecho commented on July 3, 2024

Hi, thanks for your feedback:) I didn't plan to add legend or title as I've explained in issue #4 but already few people have asked about it so I'll keep this issue open. If I find some time I'll try to implement it.

from hellocharts-android.

mendhak avatar mendhak commented on July 3, 2024

Sorry, I should have searched. Yeah, probably keep the issue open for a bit.

It's easy to implement anyway, with a RelativeLayout and by setting a TextView at an absolute position I'm able to get a chart title.

from hellocharts-android.

Alireza-Farahani avatar Alireza-Farahani commented on July 3, 2024

@lecho I too think legends and title are part of the graph and should be implemented as a part of this great and beautiful library's API.

from hellocharts-android.

lecho avatar lecho commented on July 3, 2024

Ok:) I'll try to do this in next few days.

from hellocharts-android.

douglasjunior avatar douglasjunior commented on July 3, 2024

@lecho Could you give us an example of how to make a legend out of the chart? Which components you use for this?

from hellocharts-android.

lecho avatar lecho commented on July 3, 2024

@douglasjunior Hi, legend component is not finished yet, for now you need to create legend on your own.

from hellocharts-android.

gtcompscientist avatar gtcompscientist commented on July 3, 2024

@lecho The legend is the only thing holding me back from using this library. Do you have an updated ETA for it being implemented?

from hellocharts-android.

lecho avatar lecho commented on July 3, 2024

Sorry, for now time is the issue, I can't promise anything in that matter.

from hellocharts-android.

alvinwo avatar alvinwo commented on July 3, 2024

hello, when will be this api ready?

from hellocharts-android.

abdeladim-s avatar abdeladim-s commented on July 3, 2024

Hi all,
if someone still need to add titles as legend to their charts,this is my own implementation:

public void addTitles(LineChartView chart, List<Line> lines,
   		String[] titles, int textSize, String backgroundColor, int backgrounfAlpha) {
   	if (lines.size() != titles.length) {
   		return;
   	}
   	// set a linear layout container
   	LinearLayout listOfTitles = new LinearLayout(getActivity());
   	listOfTitles.setOrientation(LinearLayout.VERTICAL);
   	LayoutParams LLParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
   			LayoutParams.WRAP_CONTENT);
   	listOfTitles.setLayoutParams(LLParams);
              // set radius corners 
   	GradientDrawable shape = new GradientDrawable();
   	shape.setCornerRadius(8);
   	shape.setColor(Color.parseColor(backgroundColor));
   	shape.setAlpha(backgrounfAlpha);
   	listOfTitles.setBackground(shape);

   	TextView[] textViewTitles = new TextView[titles.length];

   	for (int i = 0; i < titles.length; i++) {
   		textViewTitles[i] = new TextView(getActivity());
   		textViewTitles[i].setTextColor(lines.get(i).getColor());
   		textViewTitles[i].setText(titles[i]);
   		textViewTitles[i].setTextSize(textSize);
   		listOfTitles.addView(textViewTitles[i]);
   	}

   	// get chart parent
   	ViewGroup v = (ViewGroup) chart.getParent();

   	v.addView(listOfTitles);

   	listOfTitles.bringToFront();
   	
   	// make the view draggable 
   	listOfTitles.setOnTouchListener(this);

   }

if you want to make the legend draggable :
1 - add implements OnTouchListener to your activity
and then :

        float dX = 0;
	float dY = 0;
	@Override
	public boolean onTouch(View view, MotionEvent event) {
		switch (event.getActionMasked()) {
		case MotionEvent.ACTION_DOWN:
			dX = view.getX() - event.getRawX();
			dY = view.getY() - event.getRawY();
			break;

		case MotionEvent.ACTION_MOVE:
			view.setY(event.getRawY() + dY);
			view.setX(event.getRawX() + dX);
			break;

		default:
			return false;
		}
		return true;
	}

Thanks @lecho for the library!

from hellocharts-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.