There is a small drop in the terminal voltage when a NiCd (and NiMH) cell is fully charged; it's larger with a NiCd cell and is easier to detect. I'd use an MCU like a small PIC or AVR with an ADC to detect the negative delta voltage (remove the charging voltage periodically) and terminate the charge. I've heard of people connecting small solar cells directly to NiCd cells, but with a solar cell capable of 200 mA you need to take some precautions. I'd boost the 1.5V to something like 3V, to make things easier, and provide a suitable supply to the MCU. You'd need an MCU with a 12-bit ADC to detect the voltage dip with an NiMH cell. Here is a useful app note.
There are also energy harvesting techniques that can be used, here are some typical devices. I've experimented with the EH300 and it works OK.